MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

1つのINSERT文でMySQLに複数のレコードを一括挿入する簡単な方法

1つのINSERT文で複数レコードを追加するには

MySQLでは、1つのINSERT文だけで複数のレコードを簡単に追加できます。レコードごとに個別のINSERT文を実行する必要はありません。

基本構文

insert into yourTableName(yourColumnName1,yourColumnName2,......N)
values(yourValue1,yourValue2,....N),(yourValue1,yourValue2,....N),..........N;

ポイントは、VALUES句の後にカンマ(,)で区切って複数の値セットを並べるだけという点です。この方法(バルクインサート/一括挿入)は、レコードごとにINSERT文を発行する場合と比べて通信回数や処理のオーバーヘッドが減るため、大量データを登録する際にもパフォーマンス面で有利です。

テーブルの作成

まず、動作確認用のテーブルを作成しましょう。

mysql> create table DemoTable
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Value1 int,
    Value2 int,
    Value3 int
);
Query OK, 0 rows affected (0.79 sec)

複数レコードの一括挿入

続いて、INSERT文を使ってテーブルに4件のレコードをまとめて挿入します。

mysql> insert into DemoTable(Value1,Value2,Value3) values(10,20,40),(100,148,120),(150,670,1000),
(100000,200000,409999);
Query OK, 4 rows affected (0.17 sec)
Records : 4 Duplicates : 0 Warnings : 0

「Query OK, 4 rows affected」と表示されているように、たった1回のINSERT文で4件のレコードが正常に登録されました。

挿入結果の確認

SELECT文を使って、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

上記のクエリを実行すると、次のような出力が得られます。

+----+--------+--------+--------+
| Id | Value1 | Value2 | Value3 |
+----+--------+--------+--------+
| 1  | 10     | 20     | 40     |
| 2  | 100    | 148    | 120    |
| 3  | 150    | 670    | 1000   |
| 4  | 100000 | 200000 | 409999 |
+----+--------+--------+--------+
4 rows in set (0.00 sec)

AUTO_INCREMENTが設定されたIdカラムには自動的に連番が振られ、指定した各値セットが正しく1行ずつ挿入されていることが確認できます。

  1. MySQLで複数のレコードをすばやく一括挿入するクエリの書き方

    MySQLで複数のレコードを効率よく挿入したい場合、INSERT文を何度も実行するのではなく、1つのINSERT文で複数行をまとめて指定するのがおすすめです。この方法ならデータベースとの通信回数が減り、処理速度が大幅に向上します。 基本構文 複数のレコードをすばやく挿入するには、単一のINSERT文を使い、以下の構文に従います。 insert into yourTableName values(yourValue1,yourValue2,...N),(yourValue1,yourValue2,...N).....N; ポイントは、各行の値セットをカンマ(,)で区切って並べるだけというシンプル

  2. MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法

    はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実