Oracle 使用一條insert語句完成多表插入

DMS程式猿發表於2017-04-06

語法一

全表插入

insert all into table1 values() into table2 values() select * from table

執行過後,會將table中的所有資料分別插入table1和table2

加條件插入

insert all when condition1 then into table1 values() when condition2 then into table2 values() select * from table

執行過後,會將table中滿足條件condition1的資料插入到table1,滿足條件condition2的資料插入到table2

也可以這麼寫:

insert all when condition1 then into table1 values() else into table2 values() select * from table

語法二

條件插入

insert first when condition1 then into table1 values() when condition2 then into table2 values() select * from table

區別:該方法中源表table的每條記錄只會被插入一次,即使同時滿足多個條件也不會重複插入

相關文章