SQlite-Database mit vorgefertigter Tabelle - Autoinkrement-Konflikt

  • Antworten:3
Frank Rudolf
  • Forum-Beiträge: 215

29.01.2018, 18:24:05 via Website

Der Titel sagt schon einiges.

Ich habe sagen wir mal 1500 Datensätze, die ich in einer SQlite-Datenbank unterbringen möchte. Dabei sollen die IDs der vorhandenen Datensätze erhalten bleiben (hauptsächlich, weil die Datensätze mit dem Prinzip der "verketteten Liste" miteinander verbunden sind; es gibt also "Eltern- und Kinder" (hierarchische Struktur)).

Solange die Autoinkrement-Funktion eingeschaltet ist, dürfte es wohl zu Konflikten mit den alten IDs kommen (Meckern darüber, dass Autoinkrement-Spalten keine vorgefertigten Werte haben dürfen oder ähnliches). Bei SQL-Server-Datenbanken kann man zB ähnlich verfahren.

Geht vielleicht als eventuelle Lösung:
Die AutoinkrementFunktion temporär abschalten und später wieder aktivieren?

Oder habt ihr sonst noch Ideen?

Danke!

— geändert am 29.01.2018, 18:27:24

Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.01.2018, 19:02:06 via App

Solange deine IDs in der DB noch nicht existieren, kannst du einfach Inserts machen

https://stackoverflow.com/a/13273987

Zum Problem wirds erst, wenn du doppelte IDs hättest.

Im Gegensatz zu MSSql geht das hier, denn bei MS musst du immer den IdentityInsert abschalten.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Frank Rudolf
Kommentieren
Frank Rudolf
  • Forum-Beiträge: 215

29.01.2018, 22:40:55 via Website

Wenn ich den Link richtig verstanden habe, so werden die Werte in der (Autoinkrement)-ID-Spalte beim INSERT nur dann automatisch vergeben, wenn die Werte hier Null sind. Liegen dagegen in dieser Spalte Werte vor (wie in meiner vorhandenen Tabelle), so werden sie einfach übernommen (und kein Konflikt tritt auf)?

Richtig verstanden?

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

30.01.2018, 09:33:22 via App

Genau so ist es.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Frank Rudolf
Kommentieren