Ich benutze SQLite, und ich habe eine Tabelle für Eigenschaften und eine Tabelle für Untereigenschaften. Jede Untereigenschaft verweist mit der Spalte fkPropertyId auf ihren übergeordneten Eintrag. Gerade jetzt, die ursprüngliche Datenbank zu erstellen, ich habe ein Skript bekam, die etwa wie folgt aussieht:Wie kann ich auf die zuletzt eingefügte Zeilen-ID innerhalb eines SQL-Skripts zugreifen?
INSERT INTO property VALUES(1,.....);
INSERT INTO property VALUES(2,.....);
INSERT INTO property VALUES(3,.....);
INSERT INTO subproperty VALUES(1,.....,3);
INSERT INTO subproperty VALUES(2,.....,3);
INSERT INTO subproperty VALUES(3,.....,3);
INSERT INTO property VALUES(4,.....);
Nun, ich möchte der hartcodierte rowID loszuwerden, so wäre es so etwas wie:
INSERT INTO property VALUES(NULL,.....);
INSERT INTO property VALUES(NULL,.....);
INSERT INTO property VALUES(NULL,.....);
INSERT INTO subproperty VALUES(NULL,.....,X);
INSERT INTO subproperty VALUES(NULL,.....,X);
INSERT INTO subproperty VALUES(NULL,.....,X);
INSERT INTO property VALUES(NULL,.....);
Dabei bezieht sich x auf die zuletzt eingefügte rowId in der Eigenschaftentabelle. Gerade jetzt, das ist
(SELECT MAX(rowId) FROM property)
Gibt es einen besseren (und technisch genau) Weg, um dieses Skript zu schreiben?
Wie behalte ich diesen Wert für drei aufeinanderfolgende Einsätze? –
Fügen Sie zuerst die Eigenschaftszeile und dann die Untereigenschaft ein. Wenn Sie die Eigenschaften-ID für mehr als eine Einfügung speichern müssen, weisen Sie sie einer Variablen zu, bevor Sie die Untereigenschaften einfügen. –
mein Problem ist, dass dies ein SQLite-Skript ist und soweit ich weiß, unterstützt SQLite keine Benutzervariablen in Skripten –