📅  最后修改于: 2020-11-15 03:32:26             🧑  作者: Mango
Oracle INSERT ALL语句用于通过单个INSERT语句插入多行。您可以仅使用一个SQL命令将行插入到一个表或多个表中。
句法
INSERT ALL
INTO table_name (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
INTO table_name(column1, column2, column_n) VALUES (expr1, expr2, expr_n)
INTO table_name (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
SELECT * FROM dual;
1)table_name:它指定要在其中插入记录的表。
2)column1,column2,column_n:这指定表中要插入值的列。
3)expr1,expr2,expr_n:这指定要分配给表中列的值。
本示例指定如何在一个表中插入多个记录。在这里,我们在“供应商”表中插入三行。
INSERT ALL
INTO suppliers (supplier_id, supplier_name) VALUES (20, 'Google')
INTO suppliers (supplier_id, supplier_name) VALUES (21, 'Microsoft')
INTO suppliers (supplier_id, supplier_name) VALUES (22, 'Apple')
SELECT * FROM dual;
输出量
3 row(s) inserted.
0.02 seconds
这完全等效于以下三个INSERT语句。
INSERT INTO suppliers (supplier_id, supplier_name) VALUES (1000, 'Google');
INSERT INTO suppliers (supplier_id, supplier_name) VALUES (2000, 'Microsoft');
INSERT INTO suppliers (supplier_id, supplier_name) VALUES (3000, 'Apple');
INSERT ALL语句还可用于仅通过一条命令将多行插入到一个以上的表中。
在下面的示例中,我们将在“ suppliers”和“ customers”表中插入记录。
INSERT ALL
INTO suppliers (supplier_id, supplier_name) VALUES (30, 'Google')
INTO suppliers (supplier_id, supplier_name) VALUES (31, 'Microsoft')
INTO customers (age, name, address) VALUES (29, 'Luca Warsi', 'New York')
SELECT * FROM dual;
输出量
3 row(s) inserted.
0.03 seconds
在这里,总共插入了3行,将2行插入了Suppliers表,将1行插入了customer表。