我如何处理mysql表中的并发插入并获取正确的插入ID

Gau*_*rma 3 php insert-id adodb lastinsertid

我正在使用adodb for PHP库.

为了获取插入记录的id,我使用此函数

"$db->Insert_ID()"

我想知道是否有多个同时插入数据库表,这个方法会为每个插入的记录返回正确的插入ID吗?

我问这个的原因是因为我使用这个最后一个插入id来进一步处理其他记录并在相关表中进行后续输入.

这种方法是否足够安全,或者我错过了什么.

请帮我为此制定一个正确的工作计划,以便我可以使用最后一个插入ID进一步插入到另一个表中,而不必弄乱现有数据.

谢谢

Y. *_*ham 10

是的,对于使用它是安全的.这是因为LAST_INSERT_ID()为每个连接,如解释在这里:

生成的ID在每个连接的基础上在服务器中维护.这意味着函数返回给定客户端的值是为该客户端影响AUTO_INCREMENT列的最新语句生成的第一个AUTO_INCREMENT值.此值不受其他客户端的影响,即使它们生成自己的AUTO_INCREMENT值.此行为可确保每个客户端都可以检索自己的ID,而无需关心其他客户端的活动,也无需锁定或事务.

  • @Ajibola client =连接.每次执行"$ db-> connect()"左右时,它都是新客户端.它可以是同时运行多次的同一台计算机上的相同脚本; 它会有不同的LAST_INSERT_ID. (2认同)