开发者社区> 问答> 正文

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

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,为什么?

展开
收起
kun坤 2020-06-08 16:22:05 651 0
1 条回答
写回答
取消 提交回答
  • 你测试的时候只有一个表么?
    LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID返回表b中的Id值。

    2020-06-08 16:22:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载