[mysql报错注入]mysql报错#1062 Duplicate entry ‘2147483647’ for key ‘PRIMARY’

更新时间:2020-03-10    来源:mysql教程    手机版     字体:

【www.bbyears.com--mysql教程】


实际上本次故障的素材来自于朋友的朋友,虽然我并不是故障的亲身经历者,但即便只是作为旁观者,依然感觉有所收获,于是乎记录下来以馈读者。


故障的来龙去脉大致是这样的:在一个月黑风高的晚上,苦逼的程序员被一阵急促的报警短信声惊醒,原来是数据库的某个表出问题了,虽然查询操作都正常,但创建操作却都失败了,经过调试,发现原因是表被插入了一行问题数据,其自增字段的值被显式的设置为整型的最大值,导致后续缺省插入的数据不能获取到一个合法的主键值。

我们不妨创建一个测试表说明问题:

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

然后插入一行问题数据:

INSERT INTO test (id, name) VALUES (2147483647, 'x');

结果导致不能执行正常的插入语句:

INSERT INTO test (name) VALUES ('y');

此时数据库会报错:

#1062

本文来源:http://www.bbyears.com/shujuku/86219.html

热门标签

更多>>

本类排行