PSMAC
一括インサート
最終更新:
mac
-
view
プログラム上や市販、フリーのSQLエディタより、ひとつのSQLで複数レコードを一括インサートする方法
- 尚、どのレコードがどのような原因でエラーになったかをアウトプットしなければならない要件では使用できない。また、正常処理したレコードだけでもロールバックせずにDBに登録してほしいという要件でも使用できない。
- 詳細なエラー処理は必要なく、レスポンス優先の業務で使用するとよいでしょう。
- たびたび登場するfrom dualはDBのベンダーによって記述が異なるので適宜読み替えてください。
マルチテーブルインサート方法
insert all into Table1(Col1,Col2) values(1,2) into Table1(Col1,Col2) values(3,4) into Table1(Col1,Col2) values(5,6) select 1 from dual;
- バインド処理ができる。
- oracleでしか使えない。
UNION句を使用した方法
insert into Table1(Col1,Col2) select 1,2 from dual union all select 3,4 from dual union all select 5,6 from dual;
- 多数のベンダーのDBで使用できる。
- バインド処理ができないのでSQLインジェクションの問題が残る。
VALUES句に複数の値を設定する方法
insert into Table1(Col1,Col2) values(1,2),(3,4),(5,6);
- 多数のベンダーのDBで使用できる。
- バインド処理ができる。