Как получить последний идентификатор вставки в SQLite?

Есть ли в SQLite встроенная функция для извлечения идентификатора последней вставленной строки?
Например: — В MySQL мы имеем LAST_INSERT_ID() этот вид функции. Для sqllite любая функция доступна для выполнения того же процесса.

Пожалуйста, помогите мне.

Спасибо

16

Решение

SQLite

Это доступно с помощью SQLite last_insert_rowid() функция:

Функция last_insert_rowid () возвращает ROWID последней строки
вставить из базы данных соединение, которое вызвало функцию.
SQL-функция last_insert_rowid () — это оболочка
sqlite3_last_insert_rowid () интерфейсная функция C / C ++.

PHP

Версия PHP / привязка этой функции sqlite_last_insert_rowid():

Возвращает идентификатор строки, которая была недавно вставлена ​​в
база данных dbhandle, если она была создана как поле автоинкремента.

20

Другие решения

При использовании SQLite версии 3 с PDO SQLite, это может быть так:

$insert = "INSERT INTO `module` (`mid`,`description`) VALUES (
NULL,
:text
);
";
$stmt = $conn->prepare($insert);
$stmt->execute(array(':text'=> $text));

echo $conn->lastInsertId()
14

Она имеет last_insert_rowid()

Функция last_insert_rowid () возвращает ROWID последней строки
вставить из базы данных соединение, которое вызвало функцию

4

Это короткий метод C #, который работает для меня. Int32 достаточно велик для моих целей.

public static Int32 GetNextID( SqliteConnection AConnection )
{
Int32 result = -1;

using ( SqliteCommand cmd = AConnection.CreateCommand() )
{
cmd.CommandText = "SELECT last_insert_rowid();";
using ( SqliteDataReader r = cmd.ExecuteReader() )
{
if ( r.Read() )
result = (Int32) r.GetInt64( 0 );
}
}

return result;
}
0
По вопросам рекламы [email protected]