INSERT ALL 和INSERT FIRST 的區別

star_guan2008發表於2008-09-14
all應該好理解,first即使條件中記錄有交集,資料也是不會有的,從第一個條件開始取數,剩下的資料再和下面的條件進行依次匹配
SQL> create table tmp(col1 number);

表已建立。

SQL> create table tmp1(col1 number);

表已建立。

SQL> create table tmp2(col1 number);

表已建立。
SQL> insert into tmp values(1);

已建立 1 行。

SQL> insert into tmp values(2);

已建立 1 行。

SQL> insert into tmp values(3);

已建立 1 行。

SQL> insert into tmp values(4);

已建立 1 行。
SQL> insert all
  2  when col1>2 then into tmp1 values(col1)
  3  when col1>1 then into tmp2 values(col1)
  4  select col1 from tmp;

已建立5行。

SQL> commit;

提交完成。
SQL> select * from tmp;

      COL1
----------
         1
         2
         3
         4

SQL> select * from tmp1;

      COL1
----------
         3
         4

SQL> select * from tmp2;

      COL1
----------
         2
         3
         4
SQL> insert first
  2  when col1>2 then into tmp1 values(col1)
  3  when col1>1 then into tmp2 values(col1)
  4  select col1 from tmp;

已建立3行。

SQL> commit;

提交完成。

SQL> select * from tmp1;

      COL1
----------
         3
         4

SQL> select * from tmp2;

      COL1
----------
         2

SQL>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10742223/viewspace-448312/,如需轉載,請註明出處,否則將追究法律責任。

相關文章