現在、自動インクリメントID番号、名前、および定義を含むテーブルがあり、次を使用して別のテーブルの値でテーブルを更新しています
INSERT INTO words(id, word, definition) SELECT id, word, definition FROM temp
ON DUPLICATE KEY UPDATE words.word = temp.word, words.definition=temp.definition;
テーブル一時には、使用しているテーブルとまったく同じ列レイアウトがあり、一時の途中からエントリを削除してからメインテーブルを更新する場合を除いて、正常に機能します。例えば、
temp
id word definition
1 bob is a cat
2 sam is a dog
3 doug is a monk
4 croe is a bird
テーブルのメインはそれに設定されています次に、tempから行2を削除します
temp
id word definition
1 bob is a cat
2 doug is a monk
3 croe is a bird
次に、メインテーブルを更新します
main
id word definition
1 bob is a cat
2 sam is a dog
3 croe is a bird
4 croe is a bird
temp には現在 3 行しかありませんが、main HAD は 4 であるため、4 行目は削除されません。word を一意の列にすることでこれを修正しようとしましたが、キー「word」のエントリが重複しているというエラーが表示されます。では、どうすればこれを修正できますか?