複数のデータをまとめて追加

広告

テーブルにデータを追加する場合、複数のデータを追加するには一つ一つINSERT文を実行することもできますが次の書式を使うことで複数のデータをまとめて追加することができます。

INSERT INTO tbl_name (col_name1, col_name2, ...)
  VALUES (value1, value2, ...), (value1, value2, ...), (value1, value2, ...);

追加するデータの各カラムの値をVALUESの後の括弧の中に記述しますが、複数のデータを追加する場合にはカラムの値の組をカンマで区切り続けて記述します。

例えば次のように記述します。

INSERT INTO goods (id, name) VALUES (1, '花瓶'), (2, '財布'), (3, '時計');

全てのカラムの値を追加する場合にはカラム名の列挙は不要です。ただいずれの場合でも追加する複数のデータで値を指定するカラムの数は一致していなければなりません。

サンプル

では実際に試してみます。次のようなテーブルを作成しました。

mysql> create table goods(id int, name varchar(10), price int);

p3-1

ではデータを追加します。

mysql> insert into goods values(1, '机', 2500), (2, '椅子', 1400), 
    -> (3, '時計', 3400), (4, '花瓶', 3800);

p3-2

4つのデータをまとめて追加しました。ではテーブルからデータを取得してみます。

p3-3

4つのデータがそれぞれ格納されていることが確認できます。

今度はカラムを指定してデータを追加します。

mysql> insert into goods(id, name) values(5, '本棚'), (6, 'ゴミ箱'); 

p3-4

2つのデータをまとめて追加しました。INSERT文で指定するカラム名は追加するデータで共通ですので、複数のデータを追加する場合は各データで指定するカラムの種類は一致していなければなりません。ではテーブルからデータを取得してみます。

p3-5

2つのデータがそれぞれ格納されていることが確認できます。

( Written by Tatsuo Ikura )