gpt4 book ai didi

database - 使用触发器显示更新了哪条记录

转载 作者:搜寻专家 更新时间:2023-10-30 22:35:45 25 4
gpt4 key购买 nike

我是 PL/SQL 的新手,遇到这样的问题:

我想创建一个触发器来显示电话号码已更新的人的姓氏

我做了什么

Set SERVEROUTPUT ON

Create or replace trigger inform
after update of scontact_number on SUPLIER
for each row
DECLARE
x SUPLIER.ssurname%TYPE;
BEGIN
Select SSURNAME
into x
from SUPLIER;
dbms_output.put_line('New tel number for ' || x);
END;
/

UPDATE SUPLIER
SET SCONTACT_NUMBER = 6765092654
WHERE ID_SUPLIER = 1;

触发器已编译,但当我尝试触发它时,出现错误“表正在发生变化”

我该如何解决?我将不胜感激任何答案

最佳答案

您不需要在触发器中引用表。只需使用 :new:

Create or replace trigger inform
after update of scontact_number on SUPLIER
for each row
DECLARE
x SUPLIER.ssurname%TYPE;
BEGIN
Select :new.SSURNAME
into x
from dual;

dbms_output.put_line('New tel number for ' || x);
END;
/

或者,更简单地说:

BEGIN
dbms_output.put_line('New tel number for ' || :new.SSURNAME);
END;

并且不需要变量。

关于database - 使用触发器显示更新了哪条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37630405/

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