如何防止相同的 id 将数据插入数据库(多用户)

Posted

技术标签:

【中文标题】如何防止相同的 id 将数据插入数据库(多用户)【英文标题】:How to prevent same id inserting data into database (Multi user) 【发布时间】:2015-10-15 15:44:04 【问题描述】:

我的问题是当两个或多个用户(多用户)必须同时编码时,我如何防止将 ID 复制到我的数据库中,当我尝试同时测试保存数据时,我总是重复 id。我正在使用 mysql

【问题讨论】:

你好。请参阅How to Ask 了解什么是好问题。就目前而言,这个问题需要更多细节才能回答。 ID 是否设置为自动增量,或者这是一个合法的竞争条件? 设置为比赛条件。因为我为每个事务分配 ID 我必须为每个新编码的数据或数据组生成新的 ID 【参考方案1】:

我认为您的问题与数据库锁定有关。您需要做的是锁定数据库以进行写入,以便一次只有一个会话可以访问数据库,并防止其他任何人在第一个会话完成之前写入。请参阅有关数据库锁定的此信息https://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

【讨论】:

以上是关于如何防止相同的 id 将数据插入数据库(多用户)的主要内容,如果未能解决你的问题,请参考以下文章

将 SQL 数据插入具有相同 ID 的行中?

Jpa多对多如何仅将数据插入2个表

如何防止将重复数据插入到值为多个的 SQL Server 表中

mysql 插入数据如何防止重复

Hibernate:防止角色表中有多个相同的条目

oracle数据库中怎么能避免相同的数据插入数据库多遍?sql语句怎么处理呢?