MySql報錯:Duplicate entry ‘10‘ for key ‘PRIMARY‘的解決方案
翻譯錯誤
經常遇到這個問題,今天我把這個問題記錄下來,以后如果有其他人遇到相同的問題,不至于困惑。我自己也作為一種學習中的出錯記錄,錯題本,提醒自己。
在操作數據庫的時候,經常會出現Duplicate entry ‘10’ for key 'PRIMARY’這樣的報錯,這是什么意思呢?
我去翻譯了一下,翻譯結果如下:
所以這種問題的出現就代表鍵名重復了
先正常制作表格
定義表格表頭的時候,一般會設置id為主鍵(因為id具有唯一性,且簡單)
以下是用Navicat Premium 16制作的一個表格
錯一遍(體驗報錯)
在此表格中,id已經有1,2,3,4,5,6,7,8了,如果此時我插入的數據主鍵是8,就會出現如下結果:
是的,報這個錯了。因為8這個主鍵是存在的,現在插入的數據,主鍵還是8,就造成了主鍵重復的沖突,所以會報這個錯,同時數據也是插入不進去的。
找到報錯原因,并改正
如果我們把需要插入的數據主鍵改成9,則:
很顯然插入成功了。再重新打開表看一下:
ok,數據是插入成功的。
其他可能造成報錯的情況
還有一種情況會觸發(fā)這個報錯。就以上面的例子來說,在沒有id為9的這條數據時,我插入這條數據,沒有問題,不會報錯,也能插入成功。但如果再運行剛剛那句話,就不行了。因為9已經插入了,再運行一遍,就等于再插入主鍵為9的這條數據,這就又會造成主鍵沖突。
還有一種情況也會觸發(fā)這個報錯,就是沒有設置主鍵遞增
要么用可視化工具Navicat Premium 16勾選自動遞增。
要么在命令行里設置主鍵遞增。
總結解決方案
綜上所述,這個錯誤提示是因為在插入數據時,插入了一個已經存在的主鍵值,導致沖突。解決方案如下:
- 確認是否插入了重復的數據,可以通過查詢數據庫來查看是否有重復的主鍵值。
- 如果是插入重復數據導致的錯誤,可以通過修改數據或者刪除重復數據來解決。
- 如果是其他原因導致的錯誤,可以嘗試重新創(chuàng)建表格或者修改表格結構來解決。
以上就是MySql報錯:Duplicate entry ‘10‘ for key ‘PRIMARY‘的解決方案的詳細內容,更多關于Duplicate entry ‘10‘ for key ‘PRIMARY‘的資料請關注腳本之家其它相關文章!
相關文章
Mysql導入導出工具Mysqldump和Source命令用法詳解
Mysql本身提供了命令行導出工具Mysqldump和Mysql Source導入命令進行SQL數據導入導出工作,通過Mysql命令行導出工具Mysqldump命令能夠將Mysql數據導出為文本格式(txt)的SQL文件,通過Mysql Source命令能夠將SQL文件導入Mysql數據庫中,下面通過Mysql導入導出SQL實例詳解Mysqldump和Source命令的用法2012-09-09