列リストなしで同じ MySQL テーブルに行をコピーする
MySQL では、「キー 1 のエントリ 'xxx' が重複しています」というエラーが発生することがあります。 " 同じ主キー値が既に含まれているテーブルに行を挿入しようとしたとき。これは、MySQL が主キーに一意の値を強制するためです。
すべてのカラムの手動リストを回避しながらこの問題を解決するには、より簡単な方法があります。
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;
一時キーで主キーを NULL に設定することで、テーブルの場合、MySQL はメイン テーブルに行を挿入するときに新しい一意の値を自動生成できるため、重複エントリ エラーを回避できます。
さらに確実にするには、INSERT INTO の最後に LIMIT 1 句を追加することを検討してください。行が 1 行のみ挿入されるようにします。
以上が列をリストせずに MySQL テーブルに重複行を挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。