2008-11-20 81 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