我尝试使用 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字段的样子:
我无法想象这个错误怎么会抛出这个奇怪的字符串与" - "。"。
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
答案 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`)