SQLite last_insert_rowid() 函数使用指南

来源:这里教程网 时间:2026-03-25 18:54:37 作者:

SQLite

last_insert_rowid()
函数返回从当前调用此函数的连接中插入到数据库的最后一行的 ROWID。

ROWID 是表中的行的唯一标识,它是一个 64 位的整数值。您可以使用不区分大小写的

rowid
,
oid
或者
_rowid_
获取到行的 ROWID。除非该表中有显式定义的上述名称的列。

如果一个表中有

INTEGER PRIMARY KEY
列,则该列变成 ROWID 的别名。

last_insert_rowid()
语法

这里是 SQLite

last_insert_rowid()
函数的语法:

last_insert_rowid()

参数

SQLite

changes()
函数不需要任何参数。

返回值

SQLite

last_insert_rowid()
函数返回从当前连接中最后查到数据库中的一行的 ROWID,它是一个 64 位整数值。

last_insert_rowid()
实例

隐式的 ROWID 列

为了演示 SQLite

last_insert_rowid()
函数的作用,我们使用以下语句创建一个表
test_last_insert_rowid

CREATE TABLE test_last_insert_rowid (  txt VARCHAR(100));

让我们使用下面的语句插入 2 行,

INSERT INTO test_last_insert_rowidVALUES ('Hello'), ('World');

让我们使用 SELECT 语句查看一下表中的数据:

SELECT * FROM test_last_insert_rowid;

txt-----HelloWorld

由于每个表都有一个默认的

rowid
,因此我们使用以下语句可以显示
rowid
列:

SELECT rowid, * FROM test_last_insert_rowid;

rowid  txt-----  -----1      Hello2      World

让我们使用 SQLite

last_insert_rowid()
函数获取最新的 ROWID:

SELECT last_insert_rowid();

last_insert_rowid()-------------------2

这与我们在上面看到的结果一样。

显式的 ROWID 列

如果一个表中有

INTEGER PRIMARY KEY
列,则该列变成 ROWID 的别名。比如,我们使用以下语句创建表
test_last_insert_rowid_2

CREATE TABLE test_last_insert_rowid_2 (  id INTEGER PRIMARY KEY,  txt VARCHAR(100));

这里,我们使用了

id
列作为主键。按照上面所描述的,
id
rowid
的别名。

让我们插入两行数据:

INSERT INTO test_last_insert_rowid_2 (txt)VALUES ('Hello'), ('World');

要查看表中行和每行的 ROWID,请使用以下语句:

SELECT rowid, * FROM test_last_insert_rowid_2;

id  id  txt--  --  -----1   1   Hello2   2   World

这里, 输出的列名使用了

rowid
列的别名
id

您可以使用一个自定义的

id
, 比如:

INSERT INTO test_last_insert_rowid_2 (id, txt)VALUES (123, 'Hello');

要查看最后插入的一行的 ROWID, 请使用以下带有 SQLite

last_insert_rowid()
函数的
SELECT
语句:

SELECT last_insert_rowid();

last_insert_rowid()-------------------123

它正是我们刚刚在

INSERT
语句中使用的值。

相关推荐

热文推荐