欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL Duplicate entry for key ‘PRIMARY‘主鍵重復(fù)報錯解決

 更新時間:2024年11月05日 10:37:59   作者:素人依偎  
解決SQL主鍵重復(fù)報錯的幾種方法包括使用INSERT IGNORE、REPLACE INTO、ON DUPLICATE KEY UPDATE等,本文就來介紹一下問題解決,感興趣的可以了解一下

錯誤原因

報錯信息“Duplicate entry '1234' for key 'USER_INFO.PRIMARY'”,嘗試插入一條數(shù)據(jù)時,主鍵值ID=1234,已經(jīng)存在于表USER_INFO中。因為鍵(Primary Key)是表中的唯一標(biāo)識符,每個記錄必須有一個唯一的主鍵值,所以報錯

例:

ID(主鍵)USER_NAMEADDRESS
1234小紅武漢
5678小白長沙

執(zhí)行如下插入sql后預(yù)期報錯

 INSERT INTO USER_INFO (ID, USER_NAME, ADDRESS)  VALUES (1234, '小紅', '武漢');

解決方案

1. INSERT IGNORE:忽略重復(fù)的插入操作,插入無效

機(jī)制:遇到主鍵沖突不進(jìn)行任何操作

示例預(yù)期

INSERT IGNORE USER_INFO (ID, USER_NAME, ADDRESS)  VALUES (1234, '小紅', '武漢');

ID(主鍵)USER_NAMEADDRESS
1234小紅武漢
5678小白長沙

2.REPLACE INTO:可以在主鍵沖突時替換現(xiàn)有記錄

機(jī)制:先嘗試插入數(shù)據(jù),如果發(fā)現(xiàn)主鍵沖突(或唯一索引沖突),則刪除沖突的現(xiàn)有行,然后插入新行

示例預(yù)期

REPLACE INTO  USER_INFO (ID, USER_NAME, ADDRESS)  VALUES (1234, '小綠', '北京');

ID(主鍵)USER_NAMEADDRESS
1234小綠北京
5678小白長沙

3. ON DUPLICATE KEY UPDATE:可以在主鍵沖突時更新現(xiàn)有記錄

機(jī)制:先嘗試插入數(shù)據(jù),如果發(fā)現(xiàn)主鍵沖突(或唯一索引沖突),則執(zhí)行update 操作,而不是刪除和重新插入(設(shè)想場景:批量導(dǎo)入數(shù)據(jù),如果表格中已存在主鍵相同信息,則以表格中信息為準(zhǔn),然后更新表格中的一個標(biāo)識等)

INSERT INTO USER_INFO (ID, USER_NAME, ADDRESS)  VALUES (1234, '小紅', '武漢') 

ON DUPLICATE KEY UPDATE USER_NAME = '小綠' 

示例預(yù)期

ID(主鍵)USER_NAMEADDRESS
1234小綠武漢
5678小白長沙

4.避免重復(fù)插入、調(diào)整表結(jié)構(gòu)

到此這篇關(guān)于SQL Duplicate entry for key ‘PRIMARY‘主鍵重復(fù)報錯解決的文章就介紹到這了,更多相關(guān)SQL 主鍵重復(fù)報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論