Comment puis-je accéder au dernier identifiant de ligne inséré dans un script SQL?
Je suis en utilisant SQLite, et j'ai une table pour les propriétés, et une table pour les sous-propriétés. Chaque sous-propriété de points à son parent à l'aide de la fkPropertyId colonne. Maintenant, pour créer la base de données initiale, j'ai un script qui ressemble à quelque chose comme ceci:
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,.....);
Maintenant, je veux me débarrasser de la codées en dur rowId, de sorte qu'il serait quelque chose comme:
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,.....);
Où x correspond à la dernière inséré rowId dans le tableau de propriété. Maintenant, c'est
(SELECT MAX(rowId) FROM property)
Est-il mieux (et techniquement plus précis) pour écrire ce script?
source d'informationauteur Ed Marty
Vous devez vous connecter pour publier un commentaire.
Utiliser le
last_insert_rowid
fonction:Bien, la solution je suis venu avec la
last_insert_rowid
fonction de Ben S:Ne sais pas si c'est la meilleure approche, mais cela fonctionne pour moi, et il n'utilise pas toutes les tables supplémentaires pour le stockage temporaire des données.