我的应用程序遇到问题。我有一张表,其中一个字段名称是registration_no。在插入新记录之前,我将 Registration_no 字段增加 1,然后将增加的 Registration_no 插入该表中。问题是当某些用户同时插入数据时,某些registration_no值是相同的。我怎样才能防止这种情况发生。
最佳答案
您想使用sequence .
两个注意事项:
本文中描述的
AUTO_INCRMENT
功能是非标准的,在迁移到其他数据库时可能会出现可移植性问题。如果
INSERT
中止,序列中的数字仍然会被消耗,因此序列中可能会出现漏洞。如果这是 Not Acceptable ,请使用自动生成的序列作为主(代理)键,并将该键的单独映射添加到“官方”序列号,从而强制该表索引的唯一性。
另一种方法是在数据库中强制执行UNIQUE
,使用适当的TRANSACTION ISOLATION LEVEL
并添加应用程序逻辑来处理INSERT
失败.
关于mysql - 避免在mysql中并发插入多个相同的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18598535/