Oracle INSERT ALL 語句使用
1. Oracle INSERT ALL 語句用來用一個 INSERT 語句新增多行。該行可以只使用一個SQL命令插入到一個表或多個表。
2. Oracle INSERT ALL 語法如下:
INSERT ALL
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;
---------------------
可以使用 INSERT INTO 語句多個記錄插入到一個表。
3. 插入到單表
如果你想插入3行到成績表,你可以執行下面的SQL語句:
INSERT ALL
INTO score (s_id, s_name) VALUES (1000, 'ZS')
INTO score (s_id, s_name) VALUES (2000, 'LS')
INTO score (s_id, s_name) VALUES (3000, 'WZ')
SELECT * FROM dual;
這等同於以下3 INSERT 語句:
INSERT INTO score (s_id, s_name) VALUES (1000, 'ZS');
INSERT INTO score (s_id, s_name) VALUES (2000, 'LS');
INSERT INTO score (s_id, s_name) VALUES (3000, 'WZ');
---------------------
4. 插入到多表
也可以使用 INSERT ALL 語句將多個行插入多個表中的一個命令。
例如,如果你想插入兩條記錄到成績表一條記錄到課程表,可以執行下面的SQL語句:
INSERT ALL
INTO score (s_id, s_name) VALUES (1000, 'ZS')
INTO score (s_id, s_name) VALUES (2000, 'LS')
INTO course (c_id, c_name, c_time) VALUES (5000, 'Computer', '9:00')
SELECT * FROM dual;
這等同於以下3 INSERT 語句:
INSERT INTO score (s_id, s_name) VALUES (1000, 'ZS');
INSERT INTO score (s_id, s_name) VALUES (2000, 'LS');
INSERT INTO course (c_id, c_name, c_time) VALUES (5000, 'Computer', '9:00');
---------------------