oracle触发器更新语法,Oracle之前更新触发器

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

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

语法

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

CREATE [ OR REPLACE ] TRIGGER trigger_name

BEFORE UPDATE

ON table_name

[ FOR EACH ROW ]

DECLARE

-- variable declarations

BEGIN

-- trigger code

EXCEPTION

WHEN ...

-- exception handling

END;

参数:

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

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

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

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

限制

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

可以更新:NEW值。

无法更新:OLD值。

示例

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

需要先创建下面一个表:

CREATE TABLE orders

( order_id number(5),

quantity number(4),

cost_per_item number(6,2),

total_cost number(8,2),

updated_date date,

updated_by varchar2(10)

);

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

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

CREATE OR REPLACE TRIGGER orders_before_update

BEFORE UPDATE

ON orders

FOR EACH ROW

DECLARE

v_username varchar2(10);

BEGIN

-- Find username of person performing UPDATE on the table

SELECT user INTO v_username

FROM dual;

-- Update updated_date field to current system date

:new.updated_date := sysdate;

-- Update updated_by field to the username of the person performing the UPDATE

:new.updated_by := v_username;

END;

/

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值