Python/sqlite - 插入后选择记录

12 投票
2 回答
8832 浏览
提问于 2025-04-15 23:45

有没有类似于INSERT...;SELECT @@IDENTITY的sqlite用法?如果有的话,请给我看看代码或者告诉我在哪里可以找到。

谢谢!

2 个回答

10
SELECT last_insert_rowid() -- same as select @@identity

last_insert_rowid() 这个函数会返回最后一次插入数据时的行号。这个行号是从调用这个函数的数据库连接中获取的。简单来说,last_insert_rowid() 是一个封装了 sqlite3_last_insert_rowid() 这个 C/C++ 接口函数的 SQL 函数。

18

Cursor.lastrowid 是一个在使用 SQLite 数据库时的功能。

简单来说,当你在数据库中插入一条新记录后,这个功能可以帮助你找到刚刚插入的那条记录的 ID。ID 就是数据库用来唯一标识每条记录的一个数字。

所以,如果你想知道你刚刚添加的那条数据的编号,可以用这个 lastrowid 来获取。

>>> import sqlite3
>>> conn = sqlite3.connect(":memory:")
>>> c = conn.cursor()
>>> c.execute("create table t (id integer, some text);")
<sqlite3.Cursor object at 0x00C64CE0>
>>> c.execute("insert into t values(1,'a');")
<sqlite3.Cursor object at 0x00C64CE0>
>>> c.lastrowid
1

撰写回答