MySQL LAST_INSERT_ID() 函数使用指南
MySQL LAST_INSERT_ID()
函数返回自动增长列为最后一次插入生成的值。
LAST_INSERT_ID()
语法
这里是 MySQL LAST_INSERT_ID()
函数的语法:
LAST_INSERT_ID(expr)
参数
expr
- 可选的。 一个表达式,它应该返回一个整数。
返回值
如果没有参数,LAST_INSERT_ID()
函数返回自动增长列为最后一次插入生成的值。
如果使用单个 INSERT
语句插入多行,LAST_INSERT_ID()
仅返回为第一个插入的行生成的值。
如果有参数,LAST_INSERT_ID()
函数返回该参数的值,并将此值记住为 LAST_INSERT_ID()
函数返回的下一个值。
LAST_INSERT_ID()
示例
下面的示例展示了如何使用 LAST_INSERT_ID()
函数。
首先,让我们创建一个表 test_last_insert_id
:
CREATE TABLE test_last_insert_id(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
s VARCHAR(30) NOT NULL
);
让我们插入 1 行以供测试:
INSERT INTO test_last_insert_id (s) VALUES ('a');
让我们查询一下表中的数据:
SELECT * FROM test_last_insert_id;
+----+---+
| id | s |
+----+---+
| 1 | a |
+----+---+
让我们通过 LAST_INSERT_ID()
函数获取最后插入的自增列的值:
SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 1 |
+------------------+
让我们插入 2 行以供测试:
INSERT INTO test_last_insert_id (s) VALUES ('b'), ('c');
让我们查询一下表中的数据:
SELECT * FROM test_last_insert_id;
+----+---+
| id | s |
+----+---+
| 1 | a |
| 2 | b |
| 3 | c |
+----+---+
让我们通过 LAST_INSERT_ID()
函数获取最后插入的自增列的值:
SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 2 |
+------------------+
这里,您可能会问结果为什么是 2 而不是 3 ? 这是因为,如果使用单个 INSERT
语句插入多行,LAST_INSERT_ID()
仅返回为第一个插入的行生成的值。