当前位置:  开发笔记 > 后端 > 正文

关于主键和插入的简单mysql问题

如何解决《关于主键和插入的简单mysql问题》经验,为你挑选了2个好方法。

在mysql中,如何在自动增量时获取用于插入操作的主键.

基本上,我希望在语句完成时返回新的自动增量值.

谢谢!



1> Bill Karwin..:

您的澄清评论说,如果发生另一个并发INSERT,您有兴趣确保LAST_INSERT_ID()不会给出错误的结果.请放心,无论其他并发活动如何,使用LAST_INSERT_ID()都是安全的.LAST_INSERT_ID()仅返回当前会话期间生成的最新ID.

你可以自己试试:

    打开两个shell窗口,在每个窗口中运行mysql客户端并连接到数据库.

    Shell 1:使用AUTO_INCREMENT键插入表中.

    Shell 1:SELECT LAST_INSERT_ID(),参见结果.

    Shell 2:INSERT到同一个表中.

    Shell 2:SELECT LAST_INSERT_ID(),查看与shell 1不同的结果.

    Shell 1:再次选择LAST_INSERT_ID(),看到前面结果的重复.

如果你考虑一下,这是唯一有意义的方法.支持自动递增密钥机制的所有数据库都必须采用这种方式.如果结果取决于竞争条件,而其他客户端可能同时进行INSERT,则没有可靠的方法来获取当前会话中的最后一个插入ID值.



2> Jonathan Lon..:

MySQL的LAST_INSERT_ID()

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有