MySQL Error: Duplicate entry 'xxx' for Primary Key

MySQL Error: Duplicate entry 'xxx' for Primary Key

我有 table MySQL 主键由 2 个字段组成,如下所示

table 中已有的记录是:

我发出的 INSERT 查询是:

当我运行查询时:

INSERT INTO `case_data` 
VALUES ('WCD/2016/1000017', 2, '2016-09-29', 'WCD',***********************

显示的错误信息是:

[Err] 1062 - Duplicate entry 'WCD/2016/1000017' for key 'PRIMARY'

我是否违反了主键约束?

提前致谢。

您可以检查您尝试插入的行的主键值是否已存在于 table:

SELECT COUNT(*)
FROM case_data
WHERE caseno = 'WCD/2016/1000017' AND iteration = 2;

如果它 returns 0 那么您将不会违反 PK 约束并且可以安全地插入您想要的行(假设没有额外的检查、触发器、约束)。否则它将 return 1 这意味着您已经有一行在这些列中包含值,因此您将违反不允许的行的唯一性。

当它 return 时 0 只需发出 INSERT 命令。此外,请记住在语句中指定您的列 tables 以确保您的 VALUES 中的每个值都被放入目标 table:

的正确列中
INSERT INTO case_data (caseno, iteration, casedate, casetype)
VALUES ('WCD/2016/1000017', 2, '2016-09-29', 'WCD');

如果您的列和 table 名称不包含逗号或空格等替代字符,请避免在它们周围使用反引号。这将使您的代码更具可读性,并且肯定会加快您的编写时间。