没有
第一步:创建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.   

    referencing old as old new as new for each row
    这条语句的作用是什么呢
      

  2.   

    先创建创建序列
    CREATE SEQUENCE TEST INCREMENT BY 1 START WITH 1 
        MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE 
        CACHE 20 NOORDER
     
    再创建触发器
    --
    CREATE OR REPLACE TRIGGER USERADD
    BEFORE INSERT ON MEMBERRG
    FOR EACH ROW
    BEGIN
        SELECT test.NEXTVAL INTO :NEW.id FROM DUAL;
    END;其中ID就是所要的
      

  3.   

    如果把这个ID作为表的primary key的话,
    在程序中addnew时
    是不是就不用再写处理这个字段的语句了
      

  4.   

    要写
    在insert 的时候 values(test.NEXTVAL,'','');
    test.NEXTVAL 会自增加的