MariaDB LAST_INSERT_ID() 函数的基础用法与实例
MariaDB 提供了 LAST_INSERT_ID()
函数,它可以返回最近执行的 INSERT
语句为 AUTO_INCREMENT
列成功插入的第一个自动生成的值。
发布于
在数据库操作中,经常需要获取最近插入行的自增字段值。MariaDB 提供了 LAST_INSERT_ID()
函数,它可以返回最近执行的 INSERT
语句为 AUTO_INCREMENT
列成功插入的第一个自动生成的值。本文将详细介绍 LAST_INSERT_ID()
函数的用法,并通过实例演示如何在实际应用中使用它。
语法
LAST_INSERT_ID()
函数的语法如下:
LAST_INSERT_ID()
该函数没有参数,它返回最近成功插入的 AUTO_INCREMENT
列的值。如果没有成功插入行,LAST_INSERT_ID()
的值保持不变。
实例
获取最后插入的自增 ID
INSERT INTO users (username, email) VALUES ('testuser', '[email protected]');
SELECT LAST_INSERT_ID();
输出结果为:
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 10 |
+------------------+
在事务中使用
START TRANSACTION;
INSERT INTO orders (product_id, quantity) VALUES (100, 2);
SELECT LAST_INSERT_ID();
COMMIT;
输出结果为:
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 25 |
+------------------+
插入多行数据后获取第一个自增 ID
INSERT INTO messages (user_id, text) VALUES (5, 'Hello'), (5, 'World');
SELECT LAST_INSERT_ID();
输出结果为:
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 42 |
+------------------+
在同一会话中连续插入
INSERT INTO products (name, price) VALUES ('Product 1', 10.00);
SELECT LAST_INSERT_ID();
INSERT INTO products (name, price) VALUES ('Product 2', 15.00);
SELECT LAST_INSERT_ID();
输出结果为:
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 33 |
+------------------+
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 34 |
+------------------+
结合其他函数使用
INSERT INTO logs (action) VALUES ('login');
UPDATE users SET last_login_id = LAST_INSERT_ID() WHERE id = CURRENT_USER();
这里 CURRENT_USER()
是假设的当前登录用户 ID 的函数。
结论
LAST_INSERT_ID()
函数是 MariaDB 中非常有用的工具,特别是在需要跟踪记录插入操作的场景中。它提供了一种简单而有效的方法来获取最新的自增 ID,无论是单条记录插入还是批量插入。通过本文的实例,我们可以看到 LAST_INSERT_ID()
在实际应用中的灵活性和便捷性。无论是进行数据追踪还是关联表操作,LAST_INSERT_ID()
都是一个不可或缺的函数。[1^]