SQLite 中是否有任何内置函数可用于获取最后插入的行 ID。例如:- 在 mysql 中,我们有LAST_INSERT_ID()
这种函数。对于 sqllite 任何可用于执行相同过程的函数。
请帮我。
谢谢
SQLite 中是否有任何内置函数可用于获取最后插入的行 ID。例如:- 在 mysql 中,我们有LAST_INSERT_ID()
这种函数。对于 sqllite 任何可用于执行相同过程的函数。
请帮我。
谢谢
这可以使用SQLitelast_insert_rowid()
函数获得:
last_insert_rowid() 函数从调用该函数的数据库连接返回最后一行插入的 ROWID。last_insert_rowid() SQL 函数是 sqlite3_last_insert_rowid() C/C++ 接口函数的包装。
此函数的 PHP 版本/绑定是sqlite_last_insert_rowid()
:
返回最近插入数据库 dbhandle 的行的 rowid(如果它是作为自动增量字段创建的)。
当使用带有 PDO SQLite 的 SQLite 版本 3 时,它可以是这样的:
$insert = "INSERT INTO `module` (`mid`,`description`) VALUES (
NULL,
:text
);
";
$stmt = $conn->prepare($insert);
$stmt->execute(array(':text'=> $text));
echo $conn->lastInsertId()
last_insert_rowid() 函数从调用该函数的数据库连接返回最后一行插入的 ROWID
这是一个对我有用的简短 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;
}