使用触发器显示更新了哪条记录
Show which record was updated by using trigger
我是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;
触发器已编译,但当我尝试触发它时,出现错误 'table is mutating'
我该如何解决?
我将不胜感激任何答案
触发器中不需要 table 引用。只需使用 :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;
并且不需要变量。
我是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;
触发器已编译,但当我尝试触发它时,出现错误 'table is mutating'
我该如何解决? 我将不胜感激任何答案
触发器中不需要 table 引用。只需使用 :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;
并且不需要变量。