mysql插入错误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是主键,并且是unique(ID_Category,Keyword))。 你能帮我吗?...     
已邀请:
您的数据库中已经有一行,其值为\ '18 \'和\'free mail \'。由于唯一性约束,您不能有两个这样的行。您有一些选择: 删除原始行,然后再次尝试插入:
DELETE FROM yourtable WHERE ID_Category = \'18\' AND Keyword = \'free mail\'
。 删除唯一性约束以允许两行同时存在。 使用
INSERT IGNORE
忽略该错误。 使用
REPLACE
代替
INSERT
将旧行替换为新行。 尝试
INSERT
知道客户端将收到有关错误的警报。     
好吧,这意味着您要插入的数据打破了唯一约束。从错误消息中,我会说该对已经存在一些数据(18,“免费邮件”)-您说这是唯一的。 行号不是指示,因为它与键不对应。     
您的ID_category键被声明为唯一键,因此不能有两个具有相同值的条目。     
如果您的
ID
字段确实是主键,则很有可能(或应该)自动递增。因此,请将该字段保留在INSERT查询之外。     
那是MySQL错误号1062,而不是行号。该错误意味着重复输入。您分别在ID和ID_Category中分别插入了NULL和\ '18 \'两次,因此它将在您第二次执行此操作时抛出此错误。
ID_Category
很可能是您的索引名称。你可以做一个
show index from website_categorization.category_keyword
查看索引名称。     

要回复问题请先登录注册