我有一个表test,主键是个流水号test_id,现在要在程序里插入一行,怎么自动生成这个id?
请高手指教?

解决方案 »

  1.   

    第一步:创建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
    new.country_id=s_country_id.nextval;
    end;
      

  2.   

    Try this :create or replace trigger trg_contnr_list
    BEFORE INSERT
    ON contnr_list
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    declare
    l_n_sq_number number(23);
    Begin
    select n_sq_cntnr_list.nextval into l_n_sq_number from dual;
    :new.v_rowid := l_n_sq_number;
    end;