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值.

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...