`

ORACLE 多表INSERT

 
阅读更多
ORACLE9i开始,可以通过 [INSERT ALL/INSERT FIRST] 来执行多表INSERT。

EG:
   INSERT ALL 
            WHEN T.COL1 = 1 AND T.COL2 > 100 THEN --条件子句1
                 INTO TABLE_A
            WHEN T.COL1 = 2 AND T.COL2 > 102 THEN --条件子句2
                 INTO TABLE_B
   SELECT * FROM TEST T
 


分析:INSERT ALL 在执行的时候,会把满足条件子句1的记录INSERT到TABLE_A;
                                     满足条件子句2的记录INSERT到TABLE_B;
SO:既满足条件子句1又满足条件子句2的记录,既要INSERT到TABLE_A,又要INSERT到TABLE_B;
           
   INSERT FIRST 
            WHEN T.COL1 = 1 AND T.COL2 > 100 THEN --条件子句1
                 INTO TABLE_A
            WHEN T.COL1 = 2 AND T.COL2 > 102 THEN --条件子句2
                 INTO TABLE_B
   SELECT * FROM TEST T
 


分析:INSERT FIRST 在执行的时候,如果一条记录满足条件子句1,那么就将该记录INSERT到TABLE_A,然后去校验下一条记录。如果不满足条件子句1,那么再去比较条件子句2,满足条件子句2则INSERT到TABLE_B,不满足则不做处理。
SO: 既满足条件子句1,又满足条件子句2的记录INSERT到TABLE_A.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics