MySQL 特定のデータをコピーする

MySQL

MySQL 特定のデータをコピーする

テーブルごとコピーとかではなく、特定のテーブルの、特定のデータをコピーしたい場合です。
下記のように、一度temporaryテーブルにデータを入れるという方法を使います。
フィールド数が多くても、これなら記述もシンプルで済みます。

大体がprimary_keyがuniqueとなっているために、”Duplicate entry ‘xxx’ for key 1″というエラーが出ることが多いと思いますが、そこのところもtemporaryテーブルで一度処理してあります。

 //roots というテーブルの、id 608番を同じrootsテーブルにコピーする
 CREATE TEMPORARY TABLE tmptable_1 SELECT *FROM root_details WHERE id =608;
 
 //idがprimary keyで一意のため、一度idはNULLに変更
 UPDATE tmptable_1 SET id = NULL ,root_id =100;
 
 INSERT INTO roots SELECT * FROM tmptable_1;
 DROP TEMPORARY TABLE IF EXISTS tmptable_1;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です