1. 程式人生 > >Oracle INSERT ALL 語句使用

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');
---------------------