SQLite中是否有可用的内置函数来获取最后插入的行id。
例如: - 在mysql中我们有LAST_INSERT_ID()
这种函数。对于sqllite,任何可用于执行相同过程的函数。
请帮帮我。
由于
答案 0 :(得分:20)
使用SQLite last_insert_rowid()
function:
last_insert_rowid()函数返回最后一行的ROWID 从调用该函数的数据库连接插入。该 last_insert_rowid()SQL函数是一个包装器 sqlite3_last_insert_rowid()C / C ++接口函数。
此函数的PHP版本/绑定为sqlite_last_insert_rowid()
:
返回最近插入的行的rowid 数据库dbhandle,如果它是作为自动增量字段创建的。
答案 1 :(得分:15)
将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()
答案 2 :(得分:4)
last_insert_rowid()函数返回最后一行的ROWID 从调用函数的数据库连接插入
答案 3 :(得分:2)
答案 4 :(得分:0)
这是一个适合我的简短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;
}