SQLでレコードを追加する際に、似たレコードを複製しそれを編集して完成させる、というやり方をしたかったので俺用メモ。
すること
id が 100 のレコードを、data列 を abcdefg に変更して複製する。
条件
データベース名 | テーブル名 |
---|---|
myDatabaseName | myTableName |
SQL文
-- 確認
SELECT * FROM myDatabaseName.myTableName;
-- 一時テーブルに、idが100のレコードをコピー
CREATE TEMPORARY TABLE myDatabaseName.tmp SELECT * from myDatabaseName.myTableName where id=100;
-- テーブルからid列を削除する
ALTER TABLE myDatabaseName.tmp drop id;
-- data列を変更する
SET SQL_SAFE_UPDATES = 0;
UPDATE myDatabaseName.tmp SET data='abcdefg';
-- レコードを挿入する
INSERT INTO myDatabaseName.myTableName SELECT 0,myDatabaseName.tmp.* FROM myDatabaseName.tmp;
-- 一時テーブルを削除
DROP TABLE myDatabaseName.tmp;
-- 確認
SELECT * FROM myDatabaseName.myTableName;