外部キーに基づいてmysqlテーブルのいくつかの行をコピーし、新しい行に新しい外部キーIDを割り当てたいと思います。私のテーブルレイアウトが次のようになっていると仮定します。
test
-----
table1_id int(11)
value varchar(20)
どうすればこれを達成できますか?
クエリは次のようになる必要があることがわかりました。
INSERT INTO test (table1_id, value) (SELECT '2', value FROM test WHERE table1_id=1)
これにより、外部キーID '1'のすべての行がコピーされ、代わりにID2の新しい行が割り当てられます。テーブルにさらに行が含まれている場合は、次のように、SELECT部分で行を追加したり、順序を変更したりできます。
...(SELECT row1, '{$new_id}', value, another_row FROM...