CREATE TABLE FOO
(
ID varchar(20) NOT NULL,
ABC VARCHAR2(128),
DEF VARCHAR2(128),
PRIMARY KEY (id)
);
--创建一个自增一序列
CREATE SEQUENCE FOO_INDEXID INCREMENT BY 1 START WITH 1 MAXVALUE 999999999999 CYCLE NOCACHE;
/*
CREATE OR REPLACE TRIGGER INSERT_FOO_INDEXID
BEFORE INSERT ON FOOs
REFERENCING
NEW AS new
OLD AS old
FOR EACH ROW
BEGIN
SELECT FOO_INDEXID.NEXTVAL INTO :new.INDEXID FROM FOOs;
END;
--创建触发器
create or replace trigger INSERT_FOO_INDEXIDs
before insert on FOO
for each row
declare
nextid number;
begin
IF :new.id IS NULL or :new.id=0 THEN
select FOO_INDEXID.nextval
into nextid
from sys.dual;
:new.id:=nextid;
end if;
end INSERT_FOO_INDEXIDs;
*/
CREATE OR REPLACE TRIGGER INSERT_FOO_INDEXIDs
BEFORE INSERT
ON FOO
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
begin
select FOO_INDEXID.nextval into :new.ID from dual;
end;