我开始搞乱PL / SQL数据库了,我很难创建一个触发器,当我在表中插入一行时,在我的列中放置一个名称为token的值。
我用我所知道的DB编写了一个代码,但是当我运行它时会出现以下错误:
(ORA-04084:无法更改此类触发器的新值)
按照代码:
create TABLE table_cad(
codUser integer,
name varchar(200),
pass varchar(50),
login varchar(8),
email varchar(30),
cod number(11)
token number(20));
alter table table_cad add CONSTRAINT codUser_PK PRIMARY key (codUser);
create sequence token_seq
minvalue 1
maxvalue 99999
start with 1
increment by 1;
create or replace trigger token_tgr
AFTER INSERT ON table_cad
declare
seq number;
begin
select token_seq.NEXTVAL
into sequencial
from dual;
:new.token := seq;
end;
答案 0 :(得分:1)
您需要BEFORE INSERT
行级触发器。
CREATE OR REPLACE TRIGGER token_tgr
BEFORE INSERT ON table_cad
FOR EACH ROW
DECLARE
BEGIN
SELECT token_seq.NEXTVAL
INTO :new.token
FROM dual;
END;
/