本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; /

¥ 我要打赏   纠错/补充 收藏

oracle更新前触发器,Oracle之前更新触发器相关推荐

  1. oracle安装前准备,Oracle 安装前准备

    [root@localhost Desktop]# groupadd -g 110 oinstall 用来安装oracle软件 [root@localhost Desktop]# groupadd - ...

  2. sqlserver 触发器 怎么获取更新前的值

     sqlserver 触发器 怎么获取更新前的值 更新的动作你可以分2步理解,先delete ,再insert 所以,前的值在 deleted里   后的值在 inserted里 create t ...

  3. ORACLE PL/SQL编程之八: 把触发器说透

    本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2. ...

  4. ORACLE PL/SQL编程之八:把触发器说透

    ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之八: 把触发器说透 大家一定要评论呀,感谢!光发表就花了我将近一个下午. 本篇主要内容如下: 8.1 触发器类型 8. ...

  5. oracle建个触发器,oracle数据库如何创建触发器实例

    Oracle DBA Studio 工具里面就能创建触发器 CREATE TRIGGER 名称 CREATE TRIGGER - 创建一个新触发器 语法 CREATE TRIGGER name { B ...

  6. Oracle\MS SQL Server的数据库多表关联更新UPDATE与多表更新

    一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.我们先来讨论根据其他表数据更新你要更新的表 一.MS    S ...

  7. oracle行级的触发器,Oracle触发器Trigger2行级

    create table trigger_t2( id int, name varchar(30), age int ); /* --创建一个before update的触发器-控制每一行,行级 -- ...

  8. oracle如何添加触发器,Oracle之前插入触发器

    本Oracle教程解释了如何在Oracle中创建BEFORE INSERT触发器的语法和示例. BEFORE INSERT触发器意味着Oracle将在执行INSERT操作之前触发此触发器. 语法 在O ...

  9. 升级oracle spu,Oracle 2017改变:新补丁更新(RU和RUR),新的版本(Release 18和19)

    其实早在2个月前就从一些国外OUG得知,第一个是从2017年开始改变了季度更新的方式,改变了过去的PSU为RUR (Release Update Revision) ,和改变 ProactiveBP ...

最新文章

  1. 你真的会用 CocoaPods 吗?
  2. Python学习——模块的基本知识
  3. 外企面试官最爱提的10个问题
  4. 一步步编写操作系统 55 CPL和DPL入门2
  5. des加密出的字符串有特殊字符吗_纯干货分享丨内网渗透很难学吗?
  6. MICCAI 2019 :纪录、风向与学术思考
  7. mac下svn常用命令
  8. JDK1.8之Stream
  9. 求多个数最小公倍数和最大公约数
  10. 自动化测试中自动化切换网络----解决方案
  11. Proxmark3 easy gui 5.13 版本 编译日期2019-4-17 冰人4月份最新固件
  12. mo文件等不能上传到git上
  13. keras load model 并保存特定层 (pop) 的权重save new_model
  14. SEAYAR - 思雅,快乐生活
  15. 开源让这位 00 后逆袭成为各类大奖收割者
  16. 怎样把pdf格式转换成jpg
  17. svn 怎么提交代码
  18. 计算机组成原理实验报告JMPR,计算机组成原理实验四:组合逻辑控制器部件教学实验...
  19. 人工智能笔记之专业选修课4.1.5 - 博弈论 9.重复博弈,效用,随机博弈
  20. 求通俗解释下bandit老虎机是个什么东西?

热门文章

  1. Ashmem、MemoryFile、Binder的共享内存(jni可用)
  2. Ubuntu12.04安装nginx并测试
  3. SpringBoot之idea快捷键
  4. python穷举法_python 穷举指定长度的密码例子
  5. MySQL中 limit和offset用法
  6. Error while waiting for device: The emulator process for AVD Pixel_API_30 has terminated.
  7. java的equals什么作用_java当中equals函数的作用小结
  8. maya 替换名称_maya替换对象,MAYA
  9. repeat mysql翻译_MySQL数据库中系统函数repeat有哪些功能呢?
  10. 磁盘格式 mac android,MacDroid for mac(安卓手机数据传输助手)