SQLite中是否有任何内置函数可用于获取最后插入的行ID。例如:-在mysql中,我们有LAST_INSERT_ID()这种函数。对于sqllite,任何函数均可用于执行相同的过程。请帮帮我。谢啦,谢啦
LAST_INSERT_ID()
vbkedwbf1#
这可以通过SQLite last_insert_rowid()函数实现:last_insert_rowid()函数从调用该函数的数据库连接返回最后一个行插入的ROWID。last_insert_rowid()SQL函数是sqlite3_last_insert_rowid()C/C++接口函数的 Package 器。
last_insert_rowid()
此函数的PHP版本/绑定为sqlite_last_insert_rowid():返回最近插入到数据库dbhandle中的行的rowid(如果它是作为自动增量字段创建的)。
sqlite_last_insert_rowid()
idfiyjo82#
当使用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()
zbdgwd5y3#
它具有last_insert_rowid()last_insert_rowid()函数从调用该函数的数据库连接返回最后一行插入的ROWID
46qrfjad4#
sqlite_last_insert_rowid(resource $dbhandle)
0s0u357o5#
这是一个很短的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; }
g0czyy6m6#
我是SQLite新手,这个线程很旧,所以我想它可能需要更新,因为我觉得有一个更简单和更短的方法来获取最后插入行的“id”。我使用->querySingle()代替->exec(),并包含在我的SQL语句returning id的末尾。我觉得这可能更可靠和线程安全,因为它是实际insert语句的结果。可能对资源的处理更轻。
->querySingle()
->exec()
returning id
$id = $db->querySingle("insert into names (first, last) values ('john', 'do') returning id;");
6条答案
按热度按时间vbkedwbf1#
SQLite
这可以通过SQLite
last_insert_rowid()
函数实现:last_insert_rowid()函数从调用该函数的数据库连接返回最后一个行插入的ROWID。last_insert_rowid()SQL函数是sqlite3_last_insert_rowid()C/C++接口函数的 Package 器。
PHP
此函数的PHP版本/绑定为
sqlite_last_insert_rowid()
:返回最近插入到数据库dbhandle中的行的rowid(如果它是作为自动增量字段创建的)。
idfiyjo82#
当使用SQLite版本3与PDO SQLite,它可以是这样的:
zbdgwd5y3#
它具有
last_insert_rowid()
last_insert_rowid()函数从调用该函数的数据库连接返回最后一行插入的ROWID
46qrfjad4#
sqlite_last_insert_rowid(resource $dbhandle)
0s0u357o5#
这是一个很短的C#方法,Int32对于我来说足够大了。
g0czyy6m6#
我是SQLite新手,这个线程很旧,所以我想它可能需要更新,因为我觉得有一个更简单和更短的方法来获取最后插入行的“id”。我使用
->querySingle()
代替->exec()
,并包含在我的SQL语句returning id
的末尾。我觉得这可能更可靠和线程安全,因为它是实际insert语句的结果。可能对资源的处理更轻。