加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 21:51:52 所属栏目:PHP教程 来源:网络整理
导读:我正在使用 PHP将记录组插入MySQL数据库. 每当我插入一组记录时,我想给该组一个唯一的集ID,对于DB中的每组记录,该ID增加1. 目前,我正在检查数据库中的最新设置ID,并为每个新记录集将其递增1. 令我害怕的是,如果我查询数据库以获取最新的设置ID,并且在我可以
我正在使用 PHP将记录组插入MySQL数据库.
每当我插入一组记录时,我想给该组一个唯一的集ID,对于DB中的每组记录,该ID增加1.

目前,我正在检查数据库中的最新设置ID,并为每个新记录集将其递增1.
令我害怕的是,如果我查询数据库以获取最新的设置ID,并且在我可以插入具有该设置ID 1的新记录集之前会发生什么,则在表上发生另一个插入,因此获取设置ID我是即将使用?
虽然不太可能,但类似的东西可能会大大牺牲数据的完整性.

我该怎么做才能防止这种事情发生?有没有办法临时锁定数据库表,以便在我执行SELECT / INSERT组合之前不会发生其他插入?

解决方法

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

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

然后使用该值作为插入原始表的行组的组标识符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读