在 Oracle 中,使用多行插入語句可以一次性向表中插入多條記錄。以下是使用多行插入的幾種方法:
方法 1: 使用 INSERT ALL
這種方法可以在單個 SQL 語句中插入多條記錄。
1 2 3 4 5
| INSERT ALL INTO table_name (column1, column2, column3) VALUES (value1a, value2a, value3a) INTO table_name (column1, column2, column3) VALUES (value1b, value2b, value3b) INTO table_name (column1, column2, column3) VALUES (value1c, value2c, value3c) SELECT * FROM dual;
|
在這個範例中,table_name 是你要插入數據的表名,column1, column2, column3 是你要插入數據的列名,value1a, value2a, value3a 等是對應列的數據值。
方法 2: 使用 INSERT INTO ... SELECT ... FROM dual
這種方法可以使用 UNION ALL 將多行記錄插入到表中。
1 2 3 4 5 6
| INSERT INTO table_name (column1, column2, column3) SELECT value1a, value2a, value3a FROM dual UNION ALL SELECT value1b, value2b, value3b FROM dual UNION ALL SELECT value1c, value2c, value3c FROM dual;
|
在這個範例中,每個 SELECT … FROM dual 語句代表一行要插入的數據,UNION ALL 用於合併多個 SELECT 結果。
方法 3: 使用多行 INSERT 語句 (批量插入)
你可以將多個單獨的 INSERT 語句放在一起作為一個批次執行:
1 2 3 4 5 6 7
| BEGIN INSERT INTO table_name (column1, column2, column3) VALUES (value1a, value2a, value3a); INSERT INTO table_name (column1, column2, column3) VALUES (value1b, value2b, value3b); INSERT INTO table_name (column1, column2, column3) VALUES (value1c, value2c, value3c); COMMIT; END;
|
這種方法適用於 PL/SQL 塊中進行批量插入操作。
總結
多行插入語句可以有效地減少插入操作的數量,提高數據插入的效率。根據具體需求,可以選擇 INSERT ALL、INSERT INTO ... SELECT ... FROM dual 或批量插入的方法來實現。