Create table test (id int AUTO_INCREMENT primary key, name varchar(50) )
存储过程为:
delimiter $$
DROP PROCEDURE IF EXISTS InserData$$
CREATE PROCEDURE InserData(IN _Name VARCHAR(50))
BEGIN
START TRANSACTION;
INSERT INTO test(name) VALUES (_Name);
SELECT LAST_INSERT_ID() AS InsertID;
COMMIT;
END
2条答案
按热度按时间e5nszbig1#
在以下情况下,存储程序可能会有所帮助:
存储过程为:
使用调用存储过程
尝试一下,因为我们有事务语句,但它不能确保在多线程环境中的价值。
最后一个插入id的链接mysql线程安全性解释了它将基于每个连接模型工作。
4uqofj5v2#
使用select max(id)from table是否比使用select last\u insert\u id()更安全,后者作为两个独立的查询运行?根据您的问题,表必须有一个主键。所以你可以从max(id)那里得到最后一条记录