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

有关主键和插入的简单mysql问题,第1张

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

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

您可以自己尝试:

  1. 打开两个shell窗口,在每个窗口中运行mysql客户端并连接到数据库。
  2. Shell 1:使用AUTO_INCREMENT键插入到表中。
  3. Shell 1:SELECT LAST_INSERT_ID(),请参见结果。
  4. Shell 2:将INSERT插入同一表。
  5. Shell 2:SELECT LAST_INSERT_ID(),请参见与Shell 1不同的结果。
  6. Shell 1:再次选择LAST_INSERT_ID(),请参见前面结果的重复。

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



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5038276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存