DB2自增字段IDENTITY的使用


  本文标签:DB2自增字段

  DB2自增字段IDENTITY应该如何使用呢?相信这是很多人都提到过的问题,下面就为您详细介绍DB2自增字段IDENTITY的用法,供您参考  。

  A.Generated always
值由DB2生成,客户不能直接赋值

  1. Example:  
  2. Create table t1  
  3. (id int generated always as identity (start with 100 increment by 1),description char(10));  
  4.       Commit;  
  5.       Insert into t1 values (default,’a1’);                         //insert100 a1  
  6.    Insert into t1(description) values (’a1’);                    //insert101 a1  
  7.       Insert into t1 values (200,’a1’);                             //erro  
  8.       Commit;  
  9.       Insert into t1(description) values (’a1’);                    //insert102 a1  
  10.       Rollback;  
  11.       Insert into t1(description) values (’a1’);                    //insert103 a1  
  12.       Commit;  
  13.       Select * from t1;  
  14.       100       a1  
  15.       101       a1  
  16.       103       a1 

  B.Generated by default
值可由DB2生成,也可以准许客户直接赋值,不过DB2不能保证提供的值唯一  。

  1. Example:  
  2.    Create table t1  
  3.      (id int generated by default as identity (start with 100 increment by 1),description char(10)) in userspace1  
  4.       Commit;  
  5.       Insert into t1 values (default,’a1’);                    //insert100 a1  
  6.       Insert into t1(description) values (’a1’);               //insert101 a1  
  7.       Insert into t1 values (200,’a1’);                        // insert200 a1  
  8.       Insert into t1 values (102,’a1’);                        // insert102 a1  
  9.       Commit;  
  10.       Insert into t1(description) values (’a1’);               //erro ,因此自增的当前值为102,数据库中已经存在102的主键值了  
  11.       Insert into t1(description) values (’a1’);               //insert103 a1  
  12.       Commit;  
  13.       Select * from t1;  
  14.       100       a1  
  15.       101       a1  
  16.       102       a1  
  17.       103       a1  
  18.       200       a1 

  以上DB2自增字段IDENTITY的用法介绍  。