2008-11-20 7 views
17

Próbuję wykonać prosty WSTAW i zwrócić tożsamość (automatycznie zwiększający klucz podstawowy). PróbowałemCzy SQLite obsługuje SCOPE_IDENTITY?

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

i otrzymuję następujący błąd

EnvironmentError: SQLite error 
no such function: SCOPE_IDENTITY

Czy SQLite wsparcie SCOPE_IDENTITY?
Jeśli tak, jak tego użyć?
Jeśli nie, jakie są moje (najlepiej "wątkowe bezpieczne") alternatywy?

Odpowiedz

16

Zapoznaj się z FAQ. Wykona to funkcja sqlite3_last_insert_rowid(). Uważaj jednak na wyzwalacze.

+0

Czy sqlite3_last_insert_rowid() threadsafe? Czy ogranicza się do obecnego zakresu, takiego jak SCOPE_IDENTITY? – Greg

+1

Przeczytaj dokumentację. Ostatnia identyfikacja na bieżącym połączeniu. –