如果没有参数,MariaDB LAST_INSERT_ID() 函数将返回由于最近执行的 INSERT 语句而为 AUTO_INCREMENT 列成功插入的第一个自动生成的值。如果没有成功插入任何行,则 LAST_INSERT_ID() 的值保持不变。
如果有参数,此函数将返回表达式的值以及下一次调用 LAST_INSERT_ID() 的值将返回相同的值。
语法
LAST_INSERT_ID(expression)
参数
expression | 可选。 如果指定,则返回表达式的值,并将其记住为 LAST_INSERT_ID() 函数返回的下一个值。 |
返回值
返回表中已插入或更新的最后一行的 AUTO_INCREMENT ID。
示例:
考虑下面的示例,其中创建了一个名为 Employee 的表,其中包含一个名为 EmpID 的 AUTO_INCREMENT 字段。创建表后,使用LAST_INSERT_ID()函数获取各种场景下的AUTO_INCRMENT ID。
CREATE TABLE Employee (
EmpID INT AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(50));
SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 0 |
+------------------+
INSERT INTO Employee(Name) Values ('John');
INSERT INTO Employee(Name) Values ('Marry');
SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 2 |
+------------------+
INSERT INTO Employee(Name) Values ('Kim') , ('Jo');
SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 3 |
+------------------+
SELECT * FROM Employee;
+-------+-------+
| EmpID | Name |
+-------+-------+
| 1 | John |
| 2 | Marry |
| 3 | Kim |
| 4 | Jo |
+-------+-------+
SELECT LAST_INSERT_ID(10);
+--------------------+
| LAST_INSERT_ID(10) |
+--------------------+
| 10 |
+--------------------+
SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 10 |
+------------------+
INSERT INTO Employee(Name) Values ('Ramesh');
SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 5 |
+------------------+
SELECT * FROM Employee;
+-------+--------+
| EmpID | Name |
+-------+--------+
| 1 | John |
| 2 | Marry |
| 3 | Kim |
| 4 | Jo |
| 5 | Ramesh |
+-------+--------+
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73