【问题标题】:MySQL LAST_INSERT_ID() - how does it worksMySQL LAST_INSERT_ID() - 它是如何工作的
【发布时间】:2014-02-02 17:15:58
【问题描述】:

我有这个问题:我有一个存储过程,它将行插入到表 A 中,表 A 具有自动递增列 a,然后将一行插入到表 B 中,表 B 中的外键 b 到列 A.a。我正在使用LAST_INSERT_ID 来获取新插入行的值。但是 lat 说这个存储过程有 2 个并行调用,我怎样才能确保(或 DB 本身确保)不会有任何错误的列 b 分配。

documentation 中找不到这个

【问题讨论】:

  • 按会话计算。一个会话不能有“并行”调用,它们将始终按顺序排列(并且您不会被任何其他使用自动增量值的会话打扰)。简而言之:您可以依赖它,数据库本身会为您处理这些。
  • 感谢@wrikken 将其作为答案发布,我会接受它:)

标签: mysql sql stored-procedures


【解决方案1】:

MySQL LAST_INSERT_ID() 函数获取您使用的同一连接实例插入的最后一个 ID,因此即使您有 1000 个同一脚本的实例同时运行,您也不必担心。

【讨论】:

    猜你喜欢
    • 2018-12-18
    • 2015-02-13
    • 2010-10-26
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多