oracle trigger(触发器)字段触发
来源:互联网 发布:设计淘宝店要多少钱 编辑:程序博客网 时间:2024/06/05 10:40
说到oracle的触发器,一直以来都以为只能以表触发,今天有需求某个字段的值改变后触发一系列动作,原来想这个表改变再触发,后来想了一下,触发器本来很耗性能,如果这个表的每个字段更改都触发,这样做就造成性能浪费,查了一下发现原来可以字段触发:
语法:
CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE | AFTER } {INSERT | DELETE | UPDATE [OF column [, column …]]} [OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...] ON [schema.]table_name | [schema.]view_name [REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}] [FOR EACH ROW ] [WHEN condition]
例子:
create or replace trigger 触发器名after update of 字段on 表for each rowwhen (new.字段=条件)
------------------------------------------------------------------- 验证 -----------------------------------------------------------------------
创建diy_test表:
SQL> create table diy_test 2 (a number, 3 b number 4 ) 5 /表已创建。
往diy_test插入数据:
SQL> insert into diy_test values(1,1);已创建 1 行。
创建diy_test_1表:
SQL> create table diy_test_1 2 (a number, 3 c number 4 ) 5 /表已创建。
往diy_test_1插入数据
SQL> insert into diy_test_1 values(1,1);已创建 1 行。
创建字段级触发器:当diy_test的字段b更改为2,则把diy_test_1的字段c改成2
SQL> create or replace trigger diy_test_trigger 2 after update of b 3 on diy_test 4 for each row 5 when (new.b=2) 6 begin 7 update diy_test_1 set c=2 where a= :new.a; 8 end; 9 /触发器已创建
测试1:先将diy_test的b更改成3
SQL> update diy_test set b=3 where a=1;已更新 1 行。SQL> select * from diy_test_1; A C---------- ---------- 1 1
结果显示diy_test_1的字段c没发生改变
测试2:将diy_test的b更改成2
SQL> update diy_test set b=2 where a=1;已更新 1 行。SQL> select * from diy_test_1; A C---------- ---------- 1 2
结果显示diy_test_1的字段c变成2,触发成功。
1 0
- oracle trigger(触发器)字段触发
- oracle trigger(触发器)字段触发
- oracle trigger 字段触发
- oracle 触发器 (trigger)
- Oracle Trigger 触发器
- oracle trigger (触发器)
- ORACLE之 触发器 TRIGGER
- Oracle trigger --- 触发器
- Oracle-trigger触发器解读
- Oracle总结 -- Oracle Trigger 触发器
- oracle触发器trigger的使用
- oracle 数据库 触发器 trigger 语法
- Oracle触发器(trigger):一般用法
- oracle 数据库 触发器 trigger 语法
- Oracle触发器(trigger):一般用法
- ORACLE之触发器(trigger)
- oracle之触发器(trigger)
- Oracle Study之--Oracle 触发器(Trigger)
- ListView图片的异步加载 -- AsyncImageDownloader
- Palindrome Partitioning II 最少的回文数切割
- soap ui
- Compatibility changes in IE11
- Combinations
- oracle trigger(触发器)字段触发
- Ubuntu Server安装和配置VNCServer
- Eclipse的几个快捷方式
- Android Unable to resolve target 'android-8'
- HashSet源码分析
- Maximal Rectangle 最大的矩形
- C# 针对静态类的反射,静态成员同理
- prepareAsync called in state 1
- Eclise中SVN插件安装和使用