MySQL レコードデータをコピーして挿入する

MySQL レコードデータをコピーして挿入する

MySQLで、レコードデータをコピーして挿入する手順を記述してます。

環境

  • OS ubuntu21.10
  • MySQL Ver 8.0.27-0ubuntu0.21.10.1 for Linux on x86_64 ((Ubuntu))
  • MySQL Workbench 8.0.27

手順

レコードデータをコピーして挿入する場合は、「INSERT」に自身のデータを「SELECT」して使用します。

INSERT INTO テーブル名 (カラム) (select カラム FROM テーブル名 WHERE 条件);

実際に、以下のテーブルのレコードを使用してみます。

「id=2」のデータを挿入してみます。
※「id」はオートインクリメントになってます。

INSERT INTO tbl (name,age) (select name,age FROM tbl WHERE id = 2);

実行結果をみると、挿入されていることが確認できます。

条件の結果に複数のレコードがあると、全て挿入されます。

INSERT INTO tbl (name,age) (select name,age FROM tbl WHERE id > 2);

実行結果