editie_idの新しい番号でいくつかの行を複製しようとしていますが、次の奇妙な重複エントリエラーが発生します
1062-キー「werknemer_id」のエントリ「2042-0-5085-143」が重複しています
これは私が実行しようとしているコードです
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
これにより、これらの列に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`)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加