如何创建在 PL/SQL 中更新后触发的触发器
Posted
技术标签:
【中文标题】如何创建在 PL/SQL 中更新后触发的触发器【英文标题】:How to create a trigger that fires after an update in PL/SQL 【发布时间】:2013-12-11 06:19:53 【问题描述】:我想创建一个触发器,当 Fin_Movie 表中的 Movie_Qty 更新为 0 时,消息“(电影标题)不再可用”
这是我目前所拥有的:
CREATE TRIGGER movie_trg
AFTER UPDATE OF movie_qty
ON fin_movie
FOR EACH ROW
WHEN (new.movie_qty = 0)
BEGIN
DBMS_OUTPUT.PUT_LINE(' will no longer be available');
END;
它可以编译,但我不知道如何在输出中显示之前的电影标题。
谢谢
【问题讨论】:
在 Oracle 数据库中,您应该是on
serveroutput
并带有以下语句 - set serveroutput on
。然后只有来自Dbms_output.put_line
的消息将显示在显示屏上。
当前 Dbms_output.put_line 显示“将不再可用”,我想将 movie_title 添加到该语句中。所以换句话说,我想显示已经更新为0的Movie_Qty的Movie_Title,并且是'将不再可用'
简单地你可以写New.movie_name
附加你的显示信息..就像Dbms_output.put_line('will no longer be available '||New.movie_name);
我认为这应该解决你的问题..
【参考方案1】:
CREATE OR REPLACE
TRIGGER SAL_TRG1 AFTER UPDATE ON EMPC
FOR EACH ROW
begin
if (:new.salary =0) then
raise_application_error (-20110,'invalid length');
end if;
end;
【讨论】:
以上是关于如何创建在 PL/SQL 中更新后触发的触发器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle PL/SQL 上创建可以捕获 DUP_VAL_ON_INDEX 的前触发器或后触发器