MariaDB レコードをコピーしてinsertする

MariaDB レコードをコピーしてinsertする

MariaDBで、レコードをコピーしてinsertする手順を記述してます。「INSERT」文の挿入する値にselectして取得した結果を指定することで可能です。

環境

  • OS Rocky Linux release 8.4 (Green Obsidian)
  • MariaDB 10.6.4
  • phpMyAdmin 5.1.1

手順

レコードをコピーしてinsertする場合は、「INSERT」文に、テーブルのデータを「SELECT」した結果使用します。

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

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

「id=2」のデータを挿入します。
※「id」はオートインクリメントになっているの挿入される側のテーブルのインクリメント値となります。。

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

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

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

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

実行結果