存储过程,insert之后取得当前的自增Id

jerry2012 发布于 2013/08/02 11:47
阅读 2K+
收藏 0

DELIMITER // -- 更改结束符号

CREATE PROCEDURE insert_sharemessage(in messageContent varchar(250),
 in pubDate varchar(20),in address varchar(50),in userId int,out messageId int)
BEGIN
 insert into sharemessage(messageContent,pubDate,address,userId)
  VALUES(messageContent,pubDate,address,userId);
 select LAST_INSERT_ID() into messageId;
END;
//
DELIMITER ;

这是我写的一个存储过程,插入数据之后取出当前的自增id,但是为什么取出之后是下个的自增id呢,我在数据库表中直接写插入语句,在last_insert_id就是当前的自增id,为什么?

加载中
0
不是小白
不是小白

你测试的时候只有一个表么?

LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID返回表b中的Id值。

返回顶部
顶部