-1

外部キーに基づいてmysqlテーブルのいくつかの行をコピーし、新しい行に新しい外部キーIDを割り当てたいと思います。私のテーブルレイアウトが次のようになっていると仮定します。

test
-----
table1_id int(11)
value varchar(20)

どうすればこれを達成できますか?

4

1 に答える 1

0

クエリは次のようになる必要があることがわかりました。
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...

于 2012-11-16T10:16:41.697 に答える