2008-11-20 80 views
17

我試圖執行一個簡單的INSERT並返回標識(自動遞增主鍵)。我試過SQLite是否支持SCOPE_IDENTITY?

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

,我收到以下錯誤

EnvironmentError: SQLite error 
no such function: SCOPE_IDENTITY

不支持的SQLite SCOPE_IDENTITY?
如果是這樣,我該如何使用它?
如果不是,我的(最好是「線程安全」)替代品是什麼?

回答

16

查看FAQsqlite3_last_insert_rowid()函數將做到這一點。雖然小心觸發器。

+0

是sqlite3_last_insert_rowid()線程安全的?是否僅限於SCOPE_IDENTITY之類的當前範圍? – Greg 2008-11-20 07:56:49

+1

閱讀文檔。當前連接上的最後標識。 – 2008-11-20 08:14:48