MySQL重复条目,但字符串错误

时间:2016-12-13 15:06:01

标签: mysql

我尝试使用 editie_id 的新编号复制某些行 而且我得到以下,奇怪的重复输入错误

  

1062 - 重复录入' 2042-0-5085-143'对于密钥' werknemer_id'

这是我尝试执行的代码

INSERT INTO antwoorden
(score, werknemer_id, coach_id, vraag_id, editie_id)
SELECT score, werknemer_id, coach_id, vraag_id, 143
FROM antwoorden WHERE werknemer_id = 2042

这是werknemer_id字段的样子:

enter image description here

我无法想象这个错误怎么会抛出这个奇怪的字符串与" - "。"。

表索引

ALTER TABLE `antwoorden`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `werknemer_id`     (`werknemer_id`,`coach_id`,`vraag_id`,`editie_id`),
ADD KEY `revisie_id` (`editie_id`),
ADD KEY `vraag_id` (`vraag_id`),
ADD KEY `coach_id` (`coach_id`);

解决方案

我正在查看插入查询,但我的选择查询不够精确。 我得到了多个结果,解决方案就是这个查询

INSERT INTO antwoorden (score, werknemer_id, coach_id, vraag_id, editie_id)
SELECT score, werknemer_id, coach_id, vraag_id, 143
FROM antwoorden WHERE werknemer_id = 2043 AND editie_id = 145

1 个答案:

答案 0 :(得分:2)

这很可能导致您在UNIQUE INDEX列上定义了UNIQUE KEY(werknemer_id, coach_id, vraag_id, editie_id)。像

这样的东西
CONSTRAINT `test_constraint` UNIQUE (werknemer_id, coach_id, vraag_id, editie_id);

这意味着这些列的组合值必须始终是唯一的。在您的情况下,已存在具有值2042-0-5085-143的记录,并且您尝试插入相同的值组合。

从编辑中可以看出,你确实拥有它

ADD UNIQUE KEY `werknemer_id`     (`werknemer_id`,`coach_id`,`vraag_id`,`editie_id`)
相关问题