微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在使用PHP将记录组插入MysqL数据库.
每当我插入一组记录时,我想给该组一个唯一的集ID,对于DB中的每组记录,该ID增加1.

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

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

解决方法:

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐