Oracle 使用一条 insert 语句完成多表插入

语法一

全表插入

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

执行过后,会将 table 中的所有数据分别插入 table1 和 table2

加条件插入

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

执行过后,会将 table 中满足条件 condition1 的数据插入到 table1,满足条件 condition2 的数据插入到 table2

也可以这么写:

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

语法二

条件插入

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

区别:该方法中源表 table 的每条记录只会被插入一次,即使同时满足多个条件也不会重复插入

查看评论