mysql:主键的重复项

标签 mysql ruby

我正在运行我的 ruby​​ 脚本以加载到 mysql。它有一个错误:

Mysql::Error: Duplicate entry '4444281482' for key 'PRIMARY'

我的主键是自动递增 ID (Big-INT)。我使用屏幕在具有不同数据的多个终端中运行脚本,以加载到同一个表中。这个问题以前从未发生过,但是当它发生时,不同终端中的所有脚本都可能会遇到该问题。数据集不同。这似乎是随机发生的。 可能是什么原因? 为什么自增字段会重复?

最佳答案

您提到您正在使用不同的数据从不同的终端运行脚本。根据MySQL manual ,并假设您的引擎是 InnoDB,因为每个事务都针对 AUTO_INCREMENT 列插入不同数量的行,引擎可能不知道将提前检索多少行。这可能可以解释为什么您会收到重复的 key 错误。通过在语句末尾使用表级锁,一次只能执行一个 INSERT 语句,并且自动递增数字的生成不会交错。

关于mysql:主键的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12079974/

相关文章:

mysql - Grafana 从 MySql 选择数据总是给出 Command Denied Error 1142

ruby - 在 Sinatra 1.2.0 和 Ruby 1.9.2 上使用 Case Expression 的 SyntaxError

ruby - 限制 Net::HTTP.request_get 的获取大小

ruby-on-rails - Rails- 未创建迁移 Controller

ruby - 分块 Ruby 数组时获取 block 的起始索引作为结果的一部分

php - 基于年份的MYISAM引擎在mysql中的表分区

mysql - 如何根据先前和最后更改的值构建新的日期列?

php - MAMP-mysqli_query(): (HY000/6): Error on delete of …

Ruby 创建一个哈希数组

php - 用户 'user' @'localhost' 的访问被拒绝(使用密码 : NO)