SQLite поддерживает SCOPE_IDENTITY? - PullRequest
18 голосов
/ 20 ноября 2008

Я пытаюсь выполнить простую вставку и вернуть идентификатор (автоинкрементный первичный ключ). Я пробовал

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

и я получаю следующую ошибку

EnvironmentError: SQLite error
no such function: SCOPE_IDENTITY

Поддерживает ли SQLite SCOPE_IDENTITY?
Если да, то как мне его использовать?
Если нет, каковы мои (желательно «поточно-ориентированные») альтернативы?

Ответы [ 2 ]

25 голосов
/ 28 ноября 2008

Если вы не используете интерфейс C для программирования и хотите выполнить процесс из команды SQL, попробуйте: SELECT last_insert_rowid()

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

19 голосов
/ 20 ноября 2008

Ознакомьтесь с FAQ . Функция sqlite3_last_insert_rowid () сделает это. Осторожно, хотя триггеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...