2008-11-20 8 views
17

Ich versuche, eine einfache INSERT durchzuführen und die Identität (automatisch inkrementieren Primärschlüssel) zurückzugeben. Ich habe versucht,Unterstützt SQLite SCOPE_IDENTITY?

cmd.CommandText = "INSERT INTO Prototype (ParentID) VALUES (NULL); SELECT SCOPE_IDENTITY();"; 

und ich die folgende Fehlermeldung

EnvironmentError: SQLite error 
no such function: SCOPE_IDENTITY

Does SQLite Unterstützung SCOPE_IDENTITY?
Wenn ja, wie verwende ich es?
Wenn nicht, was sind meine (vorzugsweise "thread-safe") Alternativen?

Antwort

16

Überprüfen Sie die FAQ. Die sqlite3_last_insert_rowid() Funktion wird es tun. Vorsicht vor Auslösern.

+0

Ist sqlite3_last_insert_rowid() THREAD? Ist es auf den aktuellen Umfang wie SCOPE_IDENTITY beschränkt? – Greg

+1

Lesen Sie die Dokumentation. Letzte Identität für die aktuelle Verbindung –

23

Wenn Sie verwenden nicht die C-Schnittstelle für die Programmierung und wollen den Prozess von einem SQL-Befehl zu tun versuchen: SELECT last_insert_rowid()

http://www.sqlite.org/lang_corefunc.html

+0

Aus meiner Sicht sollte dies die akzeptierte Antwort sein. – JanR