Oracle触发器修改后如何启动,Oracle之后更新触发器

本Oracle教程解释了如何在Oracle中创建AFTER Update触发器的语法和示例。

AFTER Update触发器表示Oracle将在执行更新操作之后触发此触发器。

语法

在Oracle / PLSQL中创建AFTER Update触发器的语法是:

CREATE [ OR REPLACE ] TRIGGER trigger_name

AFTER UPDATE

ON table_name

[ FOR EACH ROW ]

DECLARE

-- variable declarations

BEGIN

-- trigger code

EXCEPTION

WHEN ...

-- exception handling

END;

参数:

OR REPLACE - 可选的。 如果指定,它允许您重新创建已存在的触发器,以便可以在不发出DROP TRIGGER语句的情况下更改触发器定义。

trigger_name - 要创建的触发器的名称。

AFTER UPDATE - 它表示触发器将在执行UPDATE操作之后触发。

table_name - 创建触发器的表的名称。

限制

无法在视图上创建AFTER触发器。

可以更新:NEW值。

无法更新:OLD值。

示例

我们来看看如何使用CREATE TRIGGER语句创建AFTER UPDATE触发器的示例。

需要先创建下面一个表:

CREATE TABLE orders

( order_id number(5),

quantity number(4),

cost_per_item number(6,2),

total_cost number(8,2)

);

然后使用CREATE TRIGGER语句创建一个AFTER UPDATE触发器,如下所示:

提示:使用SQLPlus时,需要在触发后在新行上输入斜杠。 否则,脚本将不会执行。

CREATE OR REPLACE TRIGGER orders_after_update

AFTER UPDATE

ON orders

FOR EACH ROW

DECLARE

v_username varchar2(10);

BEGIN

-- Find username of person performing UPDATE into table

SELECT user INTO v_username

FROM dual;

-- Insert record into audit table

INSERT INTO orders_audit

( order_id,

quantity_before,

quantity_after,

username )

VALUES

( :new.order_id,

:old.quantity,

:new.quantity,

v_username );

END;

/

¥ 我要打赏

纠错/补充

本Oracle教程解释了如何在Oracle中创建AFTER Update触发器的语法和示例。 AFTER Update触发器表示Oracle将在执行更新操作之后触发此触发器。 语法 在Oracle / PLSQL中创建AFTER Update触发器的语法是: CREATE [ OR REPLACE ] TRIGGER trigger_name AFTER UPDATE ON table_name [ FOR EACH ROW ] DECLARE -- variable declarations BEGIN -- trigger code EXCEPTION WHEN ... -- exception handling END; 参数: OR REPLACE - 可选的。 如果指定,它允许您重新创建已存在的触发器,以便可以在不发出DROP TRIGGER语句的情况下更改触发器定义。 trigger_name - 要创建的触发器的名称。 AFTER UPDATE - 它表示触发器将在执行UPDATE操作之后触发。 table_name - 创建触发器的表的名称。 限制 无法在视图上创建AFTER触发器。 可以更新:NEW值。 无法更新:OLD值。 示例 我们来看看如何使用CREATE TRIGGER语句创建AFTER UPDATE触发器的示例。 需要先创建下面一个表: CREATE TABLE orders ( order_id number(5), quantity number(4), cost_per_item number(6,2), total_cost number(8,2) ); 然后使用CREATE TRIGGER语句创建一个AFTER UPDATE触发器,如下所示: 提示:使用SQLPlus时,需要在触发后在新行上输入斜杠。 否则,脚本将不会执行。 CREATE OR REPLACE TRIGGER orders_after_update AFTER UPDATE ON orders FOR EACH ROW DECLARE v_username varchar2(10); BEGIN -- Find username of person performing UPDATE into table SELECT user INTO v_username FROM dual; -- Insert record into audit table INSERT INTO orders_audit ( order_id, quantity_before, quantity_after, username ) VALUES ( :new.order_id, :old.quantity, :new.quantity, v_username ); END; / ¥ 我要打赏 纠错/补充
经验分享 程序员 微信小程序 职场和发展