gpt4 book ai didi

plsql - 插入更新触发器 PL/SQL 之后

转载 作者:行者123 更新时间:2023-12-02 07:41:27 24 4
gpt4 key购买 nike

我有一个表作为 Student 并且有一个 varchar 类型的列作为 status。我需要在此表上插入或更新过程后为此status列设置值。我试图为此编写一个 Trigger。但我不能用作 :new.status。它给出 Error: ORA-04084: cannot change NEW values for this trigger type。我该怎么做?

我的代码

create or replace
TRIGGER STUDENT_AIU_TRI
AFTER INSERT OR UPDATE ON STUDENT
FOR EACH ROW
DECLARE

v_status VARCHAR2(2);

BEGIN


v_status := '1';

select v_status into :NEW.status from dual;
END;

最佳答案

如果要更改列中的值,则需要使用 BEFORE INSER OR UPDATET 触发器,而不是 AFTER INSERT OR UPDATE 触发器。为什么您认为需要使用 AFTER INSERT OR UPDATE 触发器?

您也不需要局部变量或SELECT from dual

CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT OR UPDATE ON student
FOR EACH ROW
BEGIN
:new.status := '1';
END;

关于plsql - 插入更新触发器 PL/SQL 之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10679561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com