Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL LAST_INSERT_ID()-它是如何工作的_Mysql_Sql_Stored Procedures - Fatal编程技术网

MySQL LAST_INSERT_ID()-它是如何工作的

MySQL LAST_INSERT_ID()-它是如何工作的,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,我有一个问题:我有一个存储过程,它将行插入到具有自动递增列a的表a,然后将一行插入到具有外键B的表B,该外键B插入到列a.a。我使用LAST\u INSERT\u ID获取新插入行的列a值。但是lat说有2个并行调用这个存储过程,我如何确保(或者DB本身确保)b列不会有任何错误的赋值呢 在中找不到,MySQL LAST\u INSERT\u ID()函数获取您使用的连接的同一实例插入的最后一个ID,因此,即使您有1000个同一脚本实例同时运行,您也不必担心它。这是基于每个会话的。一个会话不能有“

我有一个问题:我有一个存储过程,它将行插入到具有自动递增列a的表a,然后将一行插入到具有外键B的表B,该外键B插入到列a.a。我使用
LAST\u INSERT\u ID
获取新插入行的列a值。但是lat说有2个并行调用这个存储过程,我如何确保(或者DB本身确保)b列不会有任何错误的赋值呢


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

这是基于每个会话的。一个会话不能有“并行”调用,它们将始终按顺序进行(并且您不会被使用自动增量值的任何其他会话所困扰)。简而言之:你可以信赖它,DB自己会为你解决这个问题。谢谢@wrikken将其作为答案发布,我会接受它:)