number第一步:创建SEQUENCE
create sequence s_country_id increment by 1 start with 1 maxvalue 999999999;
第二步:创建一个基于该表的before insert 触发器,在触发器中使用该SEQUENCE
create or replace trigger bef_ins_t_country_define
before insert on t_country_define
referencing old as old new as new for each row
begin
select s_country_id.nextval into :new.country_id from dual;
end;
/

解决方案 »

  1.   

    字符也可以, 不过还是建议使用number
      

  2.   

    个人感觉,用Number比较快,而且也比较方便,确实需要一个字符编码的可以建一个字段的
      

  3.   

    对无意义的代码当然用number方便。但是大部分的编码都要求有意义。
    需要规定该字符串的第几位是何意义,在bzszp(SongZip)兄的trigger中程序复杂一些罢了。
      

  4.   

    自增建议使用sequence
    1.创建:create sequence SQU
    minvalue 1
    maxvalue 9999999999
    start with 1
    increment by 1
    cache 20
    order;
    2.使用:select squ.nextval into var from dual
      

  5.   

    如果是自动增号的用number,sequence
    如果是用来做有实际代码意义的序号,用varchar2(在一本O'relay 出版oracle设计书上看到的,具体没有试过)