oracle 怎样建自增长字段

经过以下三步就可以在表里新建一个自增长的字段了。感觉oracle居然没有一个比较方便的定义方式来建自增长字段实在有点不科学。。或许是我孤陋寡闻了?
1.新建表
--
```sql
create table trade_msg(
    id integer primary key,  --需要自增长的字段
    track_id varchar2(16),
    grp_id varchar2(6),
    message varchar2(200),
    flag varchar2(2),
    create_time date
);
```

2.新建sequence 
--
```
CREATE sequence SEQ_ID minvalue 1 maxvalue 99999999 start with 1 increment BY 1 nocache ORDER;
```
3.新建触发器
--
```
CREATE OR REPLACE TRIGGER tri_test_id before
  INSERT ON trade_msg  --触发器要建在相应的表上
    FOR EACH row DECLARE nextid NUMBER;
  BEGIN
    IF :new.id --对应表里需要自增长的字段
    IS
      NULL or :new.id=0 THEN 
      SELECT SEQ_ID.nextval  
      INTO nextid FROM sys.dual;
      :new.id:=nextid;
    END IF;
  END tri_test_id;
```
posted @ 2013-12-14 20:32  Ario  阅读(250)  评论(0)    收藏  举报