バルクインサート 【bulk insert】
概要
バルクインサート(bulk insert)とは、リレーショナルデータベース(RDB)のテーブルに行を追加する際、複数の行を一回のSQL文の実行で追加すること。INSERT文に複数行のデータを列挙する。SQLでテーブルに行(レコード)を追加するにはINSERT文を利用する。「INSERT INTO テーブル名(列名1,列名2…) VALUES (値1,値2…)」のように記述すると、列名1に値1、列名2に値2…という対応関係で値がセットされた新しい行が挿入される。
通常のINSERT文では挿入できるのは1行だが、バルクインサートに対応したRDBMSでは一度のSQL操作で複数行をまとめて挿入できる。指定方法はDBMSによって異なるが、MySQLなどの場合、(値1,値2…)という値のセットを「(値11,値12…),(値21,値22…),…」という具合にカンマ区切りで複数列挙することで、それぞれのセットに応じた行を挿入してくれる。Oracle DatabaseではPL/SQLのFORALL構文を、Microsoft SQL ServerではTransact-SQLのBULK INSERT構文を利用する方法が用意されている。
行の数だけ複数のINSERT文を発行してそれぞれ実行する場合に比べ、SQL文の解釈や実行にかかる処理のオーバーヘッドが1回分で済むため効率的で高速である。通常のINSERT文と同じように、すべての列に値を設定する場合は列名の指定部分は省略することができる。
(2021.11.30更新)