В этом учебном материале вы узнаете, как использовать Oracle оператор INSERT ALL с синтаксисом и примерами.
Описание
Oracle оператор INSERT ALL используется для добавления нескольких строк с помощью одного оператора INSERT. Строки могут быть вставлены в одну таблицу или нескольких таблиц с использованием только одной команды SQL.
Синтаксис
Синтаксис оператора INSERT ALL в Oracle/PLSQL:
INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
SELECT * FROM dual;
mytable
Таблица в которую вставляются записи
column1, column2, column_n
Столбцы таблицы для вставки значений.
expr1, expr2, ... expr_n
Значения для столбцов в таблице.
Пример вставки в одну таблицу
Вы можете использовать INSERT INTO, чтобы вставить несколько записей в одну таблицу.
Например, если вы хотите вставить 3 строки в таблицу suppliers, вы можете выполнить следующий SQL запрос:
1 2 3 4 5 |
INSERT ALL INTO suppliers (supplier_id, supplier_name) VALUES (1000, 'INTEL') INTO suppliers (supplier_id, supplier_name) VALUES (2000, 'Linux') INTO suppliers (supplier_id, supplier_name) VALUES (3000, 'Google') SELECT * FROM dual; |
Это эквивалентно следующим 3 запросам INSERT:
1 2 3 4 5 |
INSERT INTO suppliers (supplier_id, supplier_name) VALUES (1000, 'INTEL'); INSERT INTO suppliers (supplier_id, supplier_name) VALUES (2000, 'Linux'); INSERT INTO suppliers (supplier_id, supplier_name) VALUES (3000, 'Google'); |
Пример вставки в несколько таблиц
Вы можете также использовать оператор INSERT ALL для вставки нескольких строк в более чем одну таблицы в одной команде.
Например, если вы хотите вставить в обе таблицы suppliers и customers, вы можете выполнить следующее SQL предложение:
1 2 3 4 5 |
INSERT ALL INTO suppliers (supplier_id, supplier_name) VALUES (1000, 'INTEL') INTO suppliers (supplier_id, supplier_name) VALUES (2000, 'Linux') INTO customers (customer_id, customer_name, city) VALUES (999999, 'Anderson Construction', 'New York') SELECT * FROM dual; |
В этом примере будет вставлено 2 строки в таблицу suppliers и 1 строку в таблицу customers. Это эквивалентно запуску этих 3-х запросов INSERT:
1 2 3 4 5 |
INSERT INTO suppliers (supplier_id, supplier_name) VALUES (1000, 'INTEL'); INSERT INTO suppliers (supplier_id, supplier_name) VALUES (2000, 'Linux'); INSERT INTO customers (customer_id, customer_name, city) VALUES (999999, 'Anderson Construction', 'New York'); |