当您尝试向表中插入记录accounts
时,必须对其进行加密,并且必须将新记录添加到包含插入记录的代码和加密密钥的第三方表中。为此,我决定做一个触发器。关键是该表accounts
已经有一个生成唯一值的触发器。我表示要先生成PK,然后调用新的触发器。
为此,我修改了触发器 PK:
CREATE OR REPLACE TRIGGER ACCOUNTS_Triger
before INSERT ON ACCOUNTS FOR each ROW
FOLLOWS trig_insert
BEGIN
:new.ACCOUNT_ID := ACCOUNTS_seq.nextval;
END;
新的触发代码:
CREATE OR REPLACE TRIGGER trig_insert
BEFORE INSERT ON ACCOUNTS
FOR EACH ROW
DECLARE
p_key VARCHAR2(200);
BEGIN
dbms_output.put_line(:new.ACCOUNT_ID);
INSERT INTO ACCOUNTS_KEY VALUES(:new.ACCOUNT_ID, p_key);
END;
目前,我收到一条错误消息,指出该字段:new.ACCOUNT_ID
包含null
.
如何更改代码以便按我指定的顺序依次调用触发器?
关键字的
FOLLOWS
意思是“在……旁边”。检查触发顺序:结果: