mysql - 避免在mysql中并发插入多个相同的id

标签 mysql

我的应用程序遇到问题。我有一张表,其中一个字段名称是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/

相关文章:

php - 如何将选择限制为仅具有共同值(value)的行?

mysql - 重新排序 mysql 表行以提高速度

php - 在 MySQL 和 php 中查找匹配的单词

PHP/HTML : activate users through admin page using radio button

mysql - Play 2/Ebean ManyToMany JSON 结果

MySQL 创建表为 SELECT

MySQL,根据两张表获取数据

mysql - SQL 连接 : counting rows and get most recent row from another table

php - MySQL中如何使用不同表的数据获取相应的记录

php - Joomla 3 : manually updating a table in the database