【SQL】INSERT文で同時に複数の表やデータを登録する方法

このページでは、ORACLEデータベースのSQLで、1行のINSERT文で同時に複数のテーブルやデータを登録する方法を紹介します。

ORACLEデータベースでは、マルチテーブルインサートというINSERTの機能があります。

このマルチテーブルインサートを使うことで、INSERT文1行で、同時に複数の表や複数のレコードを挿入することが出来ます。

INSERT文のサンプルは↓で多数紹介していますので参考にしてください。
>>【SQL】INSERT文の書き方:サンプル多数あり

マルチテーブルインサートの書き方

マルチテーブルインサートは、通常のINSERTと違い、INSERT ALL~という風に書きます。

1.複数のテーブルに同時にレコードを登録する方法

次の例では、INSERT ALLを使って同時に複数の別のテーブルにレコードを登録しています。

INSERT ALL
 INTO tab1(col1,col2,col3)VALUES('001','test',NULL)
 INTO tab2(col1,col2,col3)VALUES('002','test',null)
 INTO tab3(col1,col2,col3)VALUES('002','test',null)
SELECT * FROM dual;

2.複数のレコードを同時に登録する方法

次の例では、INSERT ALLを使って、同じテーブルに複数のレコードを同時に登録しています。

INSERT ALL
 INTO tab1(col1,col2,col3)VALUES('001','test',NULL)
 INTO tab1(col1,col2,col3)VALUES('002','test',null)
 INTO tab1(col1,col2,col3)VALUES('002','test',null)
SELECT * FROM dual;

まとめ

ORACLEデータベースでは、マルチテーブルインサートという機能を使うことで、複数の表や複数のレコードを同時にINSERTすることが出来ます。

INSERT文は様々な書き方や使い方ができます。
詳しくは「【SQL】INSERT文の書き方:サンプル多数あり」で解説していますのでぜひ参考にしてください。