欧美成人片一区二区三区,久久碰人妻一区二区三区,久久婷婷激情综合色综合俺也去,狂野欧美性猛交免费视频,久久夜色精品国产亚洲

21
2024/06

mysql 自增字段報錯 Duplicate entry for key 'PRIMARY' .

發(fā)布時間:2024-06-21 14:15:21
發(fā)布者:已經(jīng)寫了
瀏覽量:
0

Mysql字段自增,通常用于表的主鍵,用來確保每次插入一條新數(shù)據(jù)的時候,該列的值在表中是一個唯一值,該字段通常設(shè)置為主鍵+自增,PRIMARY KEY (ID) AUTO_INCREMENT。

但是今天在重啟一個之前的功能的時候,竟然報錯了。這個表之前是記錄用戶的操作記錄的一個LOG表,內(nèi)容很多很長,中間有一段時間已經(jīng)不用了因為占用空間和影響效率,最近想要重新開始繼續(xù)記錄用戶的操作記錄,結(jié)果就是重啟之后,插入log記錄的時候就報錯了:Duplicate entry for key 'PRIMARY' .這段報錯的意思就是主鍵id重復(fù)了。當(dāng)時就有點懵,因為我記得是沒有指定主鍵id的值,應(yīng)該是自增,咋會報這個錯。

mysql 自增字段報錯 Duplicate entry for key 'PRIMARY' .

知道報錯的原因,那么解決這個報錯的思路就很清晰了,我們可以有多種方式來解決:

1、如果是在寫入的時候指定了id的值,那么我們就應(yīng)該是不指定id的值,讓mysql自動處理自增。

2、重置自增字段,使用alter table重置自增字段。

3、使用insert ignore來忽略重復(fù)的插入操作,改成更新內(nèi)容

但是,我這個情況好像不在其中。因為我沒有指定id,但是我也不想通過ignore來忽略這個報錯,我覺得可能是表的問題,我決定修復(fù)一下表結(jié)構(gòu)。在mysql中,我們可以使用repair table 來修復(fù) myisam 和 innodb類型的表,mysql還提供check table來檢測表是否存在錯誤或者損壞。

在我執(zhí)行了repair table修復(fù)表之后,在測一測是否可以正常插入新數(shù)據(jù)的時候就發(fā)現(xiàn)可以正常寫入數(shù)據(jù)了。所以在我們遇到這種報錯的時候,如果我門的代碼沒有問題的時候,可以check table來檢測一下表時候有問題,并且使用repair table來修復(fù)表嘗試是否可以解決問題。

關(guān)鍵詞:
返回列表