variable tmp number; begin select max(id)+1 into :tmp from table1; execute immediate 'create sequence table1_seq start with ' || :tmp; end; / alter sequence table1_seq cache 2000 / create or replace trigger table1_tr before insert on table1 for each row begin if :new.id is null then select table1_seq.nextval into :new.id from dual; end if; end; / create unique index table1_id_uq on table1(id) tablespace t_idx / alter table table1 add constraint table1_id_pk primary key(id) using index table1_id_uq /