複数行INSERTの基本構文
INSERT文は基本的に1回の実行で1行挿入されます。
しかし1回で複数行をINSERTすることができます。
INSERT ALL INTO <テーブル名> (列1, 列2,・・・) VALUES (値1, 値2,・・・) INTO <テーブル名> (列1, 列2,・・・) VALUES (値1, 値2,・・・) INTO <テーブル名> (列1, 列2,・・・) VALUES (値1, 値2,・・・) SELECT * FROM DUAL
複数行INSERTの使用例
以下の「TEST_TABLE」テーブルを使用して検証します。
--テーブル作成 CREATE TABLE TEST_TABLE ( "ID" VARCHAR2(10 BYTE), "NAME" VARCHAR2(50 BYTE) ) --複数行INSERT INSERT ALL INTO TEST_TABLE (ID, NAME) VALUES (1, 'いるか') INTO TEST_TABLE (ID, NAME) VALUES (2, 'うさぎ') INTO TEST_TABLE (ID, NAME) VALUES (3, 'ぺんぎん') SELECT * FROM DUAL; --複数行INSERT,列リスト省略バージョン INSERT ALL INTO TEST_TABLE VALUES (1, 'いるか') INTO TEST_TABLE VALUES (2, 'うさぎ') INTO TEST_TABLE VALUES (3, 'ぺんぎん') SELECT * FROM DUAL;
SQL> INSERT ALL 2 INTO TEST_TABLE (ID, NAME) VALUES (1, 'いるか') 3 INTO TEST_TABLE (ID, NAME) VALUES (2, 'うさぎ') 4 INTO TEST_TABLE (ID, NAME) VALUES (3, 'ぺんぎん') 5 SELECT * FROM DUAL; 3行が作成されました。
INSERT文のテーブル名の列リストは、テーブルの全列に対しINSERTする場合に省略できることは知っていると思います。
複数行INSERTについても同じように省略可能です。
SQL> INSERT ALL 2 INTO TEST_TABLE VALUES (1, 'いるか') 3 INTO TEST_TABLE VALUES (2, 'うさぎ') 4 INTO TEST_TABLE VALUES (3, 'ぺんぎん') 5 SELECT * FROM DUAL; 3行が作成されました。
コメント