gpt4 book ai didi

php - 如何在不牺牲完整性的情况下获取 MySQL 数据库表中的最新集 ID?

转载 作者:可可西里 更新时间:2023-11-01 07:52:29 25 4
gpt4 key购买 nike

我正在使用 PHP 将记录组插入 MySQL 数据库。
每当我插入一组记录时,我想为该组提供一个唯一的集 ID,该 ID 对于数据库中的每组记录递增 1。

目前,我正在检查数据库中最新的集合 ID,并为每个新记录集将其递增 1。
令我害怕的是,如果我查询数据库以获取最新的集合 ID,并且在我可以插入一组具有该集合 ID + 1 的新记录之前,另一个插入发生在表上,从而采用集合 ID I即将使用?
虽然不太可能,但类似的事情可能会极大地牺牲数据的完整性。

我能做些什么来防止这样的事情发生?有什么方法可以暂时锁定数据库表,以便在执行 SELECT/INSERT 组合之前不会发生其他插入?

最佳答案

锁定表是一种选择,但这种方法会影响并发性。

我推荐的方法是使用带有 AUTO_INCREMENT 列的单独表,并在该表中使用单独的 INSERT,并使用 SELECT LAST_INSERT_ID() 来检索 auto_increment 值。

然后将该值用作您插入到原始表中的行组的组标识符。

关于php - 如何在不牺牲完整性的情况下获取 MySQL 数据库表中的最新集 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24762716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com