违反完整性约束:1062键“ PRIMARY”的重复条目

时间:2018-08-27 00:28:00

标签: mysql

我正在向表中插入数据,并依靠auto_increment生成唯一ID,但是在某些随机情况下,它无法执行此操作,而是显示以下错误消息:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '121092752' for key 'PRIMARY'
The SQL being executed was: INSERT INTO `audit_entry` (`route`, `request_method`, `created`) VALUES ('queue/listen', 'CLI', '2018-08-27 10:03:09')

表如下:

mysql> SHOW CREATE TABLE audit_entry\G
   Table: audit_entry
Create Table: CREATE TABLE `audit_entry` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `created` datetime NOT NULL,
  `user_id` int(11) DEFAULT '0',
  `duration` float DEFAULT NULL,
  `ip` varchar(45) DEFAULT NULL,
  `request_method` varchar(16) DEFAULT NULL,
  `ajax` int(1) NOT NULL DEFAULT '0',
  `route` varchar(255) DEFAULT NULL,
  `memory_max` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_route` (`route`),
  KEY `created` (`created`)
) ENGINE=InnoDB AUTO_INCREMENT=121096793 DEFAULT CHARSET=utf8

mysql版本:

mysql> SELECT VERSION()\G
VERSION(): 5.5.59-38.11-log

遇到此问题的服务器被配置为另一台服务器的从属服务器(在2服务器雏菊链中)。它具有server_id=2auto_increment_offset=2。另一台服务器具有server_id=3auto_increment_offset=3。两者都有auto_increment_increment=10

顺便说一句,发生这种情况时,服务器的负载要比平均负载高得多。

0 个答案:

没有答案