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;

```

你可能感兴趣的:(oracle)