簡體   English   中英

mysql 插入錯誤 1062

[英]mysql insert error 1062

SQL查詢:

INSERT INTO  `website_categorization`.`category_keyword` (
`ID` ,
`ID_Category` ,
`Keyword` ,
`Score`)
VALUES (
NULL ,  '18',  'free mail',  ''
), (
NULL ,  '18',  'web email free',  ''
)  

MySQL 說:

#1062 - Duplicate entry '18-free mail' for key 'ID_Category'

即使第 1062 行沒有條目,它也會顯示此重復條目錯誤。(ID 是主鍵,並且是唯一的(ID_Category,Keyword))。 你能幫我解決這個問題嗎?...

您的數據庫中已經有一行值為“18”和“免費郵件”。 由於唯一約束,您不能有兩個這樣的行。 你有一些選擇:

  • 刪除原始行並再次嘗試插入: DELETE FROM yourtable WHERE ID_Category = '18' AND Keyword = 'free mail'
  • 刪除唯一約束以允許兩行都存在。
  • 使用INSERT IGNORE忽略錯誤。
  • 使用REPLACE而不是INSERT用新行替換舊行。
  • 嘗試INSERT知道客戶端將收到錯誤警報。

嗯,這意味着您插入的數據打破了唯一約束。 從錯誤消息中,我想說這對數據已經存在(18,'免費郵件') - 你說這被限制為唯一的。

行號不是指示,因為它不對應於鍵。

那是 MySQL 錯誤號 1062,而不是行號。 錯誤意味着重復輸入。 您分別在 ID 和 ID_Category 中插入 NULL 和 '18' 兩次,因此第二次執行時會拋出此錯誤。 ID_Category很可能是您的索引名稱。 你可以做一個

show index from website_categorization.category_keyword

查看索引名稱。

您的 ID_category 鍵被聲明為唯一的,因此您不能有兩個具有相同值的條目。

如果您的ID字段確實是主鍵,則它很可能(或應該)自動遞增。 因此,請將該字段從 INSERT 查詢中刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM