萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql報錯#1062 Duplicate entry ‘2147483647’ for key ‘PRIMARY’

mysql報錯#1062 Duplicate entry ‘2147483647’ for key ‘PRIMARY’

本文章來為各位介紹mysql報錯#1062 ? Duplicate entry ‘2147483647’ for key ‘PRIMARY’問題了希望文章能夠幫助到各位朋友了。


實際上本次故障的素材來自於朋友的朋友,雖然我並不是故障的親身經歷者,但即便只是作為旁觀者,依然感覺有所收獲,於是乎記錄下來以饋讀者。


故障的來龍去脈大致是這樣的:在一個月黑風高的晚上,苦逼的程序員被一陣急促的報警短信聲驚醒,原來是數據庫的某個表出問題了,雖然查詢操作都正常,但創建操作卻都失敗了,經過調試,發現原因是表被插入了一行問題數據,其自增字段的值被顯式的設置為整型的最大值,導致後續缺省插入的數據不能獲取到一個合法的主鍵值。

我們不妨創建一個測試表說明問題:

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

copyright © 萬盛學電腦網 all rights reserved