- Множественная вставка данных
Как было бы хорошо с помощью одной команды Insert добавлять много записей сразу в разные таблицы :)
И такая возможность существует. Для этого используется команда INSERT ALL
INSERT ALL Синтаксис
INSERT ALL INTO <table_name1> VALUES <value_list)
INTO <table_name2> VALUES <value_list>)
...<SELECT Statement>;
Где table_name1, table_name1 таблицы ,
...<SELECT Statement> - запрос для вставки данных
Приведем пример
Создадим две таблицы tab1,tab2
create table tab1(id number , val number);
create table tab2(id number , val number);
Используя инструкцию INSERT ALL INTO добавим данные в эти таблицы
insert into tab2 values(9000,9000);
commit;
insert all
into tab2(id,val) values(1001,1112)
into tab1(id,val) select id,val from tab2 ;
commit;
Второй вариант вставки
insert all
into tab2(id,val) values(1001,1112)
into tab1(id,val) select id,val from tab2 ;
Дополнительный интерес представляет конструкция insert all с условным выражением приведем пример использования
INSERT ALL WHEN id1 <> 11 THEN INTO tab2
values
(id1, val1)
select id as id1, val as val1 from tab1;