1.Create a sequence: CREATE SEQUENCE SEQ_TEST START WITH 1 INCREMENT BY 1;2. Create a table has one field name id:CREATE TABLE T_TEST (ID NUMBER, NAMES VARCHAR2(30));3. Create a trigger for the table when insert action:CREATE OR REPLACE TRIGGER TRI_TEST BEFOR INSERT ON T_TEST FOR EACH ROW BEGIN SELECT SEQ_TEST.NEXTVAL INTO :NEW.ID FROM DUAL; END;随便问一句CDC的吗,要不怎么这么巧都今天早上遇到这个问题?
方法: 1.创建sequence就可以 create sequence seq_name minvalue 1 maxvalue 999999999999999999 start with 1 increment by 1 cache 20; 可以直接在插入时调用seq_name.nextval; 如insert into table_name(proid) values(seq_name.nextval);2.也可以创建触发器(同时要创建sequence): create or replace trigger trg_name before insert on table_name for each row begin select seq_name.nextval into :new.proid from dual; end; /
sequence.nextval
sequence.currval
CREATE SEQUENCE SEQ_TEST START WITH 1 INCREMENT BY 1;2. Create a table has one field name id:CREATE TABLE T_TEST (ID NUMBER, NAMES VARCHAR2(30));3. Create a trigger for the table when insert action:CREATE OR REPLACE TRIGGER TRI_TEST
BEFOR INSERT ON T_TEST
FOR EACH ROW
BEGIN
SELECT SEQ_TEST.NEXTVAL INTO :NEW.ID FROM DUAL;
END;随便问一句CDC的吗,要不怎么这么巧都今天早上遇到这个问题?
1.创建sequence就可以
create sequence seq_name
minvalue 1
maxvalue 999999999999999999
start with 1
increment by 1
cache 20;
可以直接在插入时调用seq_name.nextval;
如insert into table_name(proid) values(seq_name.nextval);2.也可以创建触发器(同时要创建sequence):
create or replace trigger trg_name
before insert on table_name
for each row
begin
select seq_name.nextval into :new.proid from dual;
end;
/