我创建了存储过程以插入数据,我想在同一过程中获取插入记录的id
DELIMITER $$
USE `dbname`$$
DROP PROCEDURE IF EXISTS `sp1`$$
CREATE DEFINER=`root`@`%` PROCEDURE `sp1`(
Cname VARCHAR(30),
Camount INT(10)
)
BEGIN
INSERT INTO user( Username, PAmount )
VALUES( Cname, Camount) ;
END$$
DELIMITER ;
我试过
SELECT MAX(id) AS pid FROM user;
但这会在下一个查询中导致错误
错误:
Commands out of sync; you can't run this command now
答案 0 :(得分:0)
如果你的命令不同步;您现在无法在客户端代码中运行此命令,而是以错误的顺序调用客户端函数。
从这里开始:http://dev.mysql.com/doc/refman/5.0/en/commands-out-of-sync.html
答案 1 :(得分:0)
如果将id声明为主键,请使用last_insert_id()函数来解决此问题。有关更多详细信息,请参阅mysql文档中的last_insert_id()
https://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id