对,建立好了序列 等到了向使用的时候可以在dual表中查找最大的序列号。 select sequence_name.nextvar into youvar from dual 即可。
有几次地方错,一、:new,:old只能在行级别有效 二、new前加: 三、end后没有分号CREATE OR REPLACE TRIGGER "TEST"."TTTT_MEME" BEFORE INSERT ON "TEST"."MEME" FOR EACH ROW declare ln number; begin select max(id) into ln from MEME; :new.id=ln+1; end;
建义你还是用序列吧CREATE OR REPLACE TRIGGER "TEST"."TTTT_MEME" BEFORE INSERT ON "TEST"."MEME" FOR EACH ROW
begin select sequence_id.nextval into :new.id from dual; end;
先建序列,再建触发器。 create sequence S_text_ID increment by 1 shart with 1 maxvalues 999999999; CREATE OR REPLACE TRIGGER T_Text_ID BEFORE INSERT ON Text REFERENCING OLD AS old NEW AS new FOR EACH ROW BEGIN IF :new.ID IS NULL THEN SELECT S_text_ID.NEXTVAL INTO :new.ID FROM dual; END IF; END; /
CREATE OR REPLACE TRIGGER "TEST"."TTTT_MEME" BEFORE INSERT ON "TEST"."MEME" FOR EACH ROW xxx number; begin select sequence_id.nextval into xxx from dual; :new.id := xxx; end; /
先建序列,再建触发器。 create sequence S_text_ID increment by 1 shart with 1 maxvalues 999999999; CREATE OR REPLACE TRIGGER T_Text_ID BEFORE INSERT ON 表名 REFERENCING OLD AS old NEW AS new FOR EACH ROW BEGIN IF :new.ID IS NULL THEN SELECT S_text_ID.NEXTVAL INTO :new.ID FROM dual; END IF; END; /
等到了向使用的时候可以在dual表中查找最大的序列号。
select sequence_name.nextvar into youvar from dual
即可。
二、new前加:
三、end后没有分号CREATE OR REPLACE TRIGGER "TEST"."TTTT_MEME"
BEFORE INSERT ON "TEST"."MEME"
FOR EACH ROW
declare
ln number;
begin
select max(id) into ln from MEME;
:new.id=ln+1;
end;
BEFORE INSERT ON "TEST"."MEME"
FOR EACH ROW
begin
select sequence_id.nextval into :new.id from dual;
end;
create sequence S_text_ID increment by 1 shart with 1 maxvalues 999999999;
CREATE OR REPLACE TRIGGER T_Text_ID
BEFORE INSERT ON Text
REFERENCING OLD AS old NEW AS new
FOR EACH ROW
BEGIN
IF :new.ID IS NULL THEN
SELECT S_text_ID.NEXTVAL
INTO :new.ID
FROM dual;
END IF;
END;
/
BEFORE INSERT ON "TEST"."MEME"
FOR EACH ROW
xxx number;
begin
select sequence_id.nextval into xxx from dual;
:new.id := xxx;
end;
/
create sequence S_text_ID increment by 1 shart with 1 maxvalues 999999999;
CREATE OR REPLACE TRIGGER T_Text_ID
BEFORE INSERT ON 表名
REFERENCING OLD AS old NEW AS new
FOR EACH ROW
BEGIN
IF :new.ID IS NULL THEN
SELECT S_text_ID.NEXTVAL
INTO :new.ID
FROM dual;
END IF;
END;
/