数据库触发器的运用
2016-09-03 20:08
239 查看
触发器分为行级触发和语句触发。行级触发每影响一行执行一行。语句触发执行玩语句后触发一次,不管这条语句会影响多少行,都只触发一次。默认是语句触发。其语法规则为:
触发器中使用PL/SQL语句可以轻松可靠地实现许多复杂的功能,我在这里使用的主要是DML触发器。
下面是几个简单的小案例:
对于主键编号的修改(自动增长列:T0001-T???)
对于主外键的修改
进行安全校验
小结:or replace 可以在触发器需要更改时节省很多功夫。触发器的使用需要一定的PL/SQL基础
create [or replace] trigger <tri_name> after|before|instand of [insert or update [of column_name] or delete] on <table_name> [referrncing OLD as old / New as new] [for each row] [when (condition)] pl/sql block
触发器中使用PL/SQL语句可以轻松可靠地实现许多复杂的功能,我在这里使用的主要是DML触发器。
下面是几个简单的小案例:
对于主键编号的修改(自动增长列:T0001-T???)
create or replace trigger tri_ts1_tid before insert on ts1 for each row begin select 'T'||substr(seq_ts1_tid.nextval,2) into :new.tid from dual; end;
对于主外键的修改
create or replace trigger tri_update before update on dept for each row begin update emp set deptno=:new.deptno where deptno=:old.deptno; commit; end;
进行安全校验
create or replace trigger tri_emp_check before update on emp for each row when(new.sal<3000) begin :new.sal := 3000; --PL/SQL 两种给变量赋值的方式 select .. into .. := raise_application_error(-20001,'修改后的工资不能低于3000'); --错误提示,可以按照自己的需求,不使用就不会报错,数据更改;使用数据不变。 end;
小结:or replace 可以在触发器需要更改时节省很多功夫。触发器的使用需要一定的PL/SQL基础
相关文章推荐
- oralce 数据库触发器的 简单运用
- 关于以数据库中两结构相同表的同步(用触发器)
- 通过触发器实现数据库的即时同步
- powerdesigner中运用vbscript批量生成触发器脚本
- 如何在不支持数据库的asp主页上运用ado
- 关系规范化理论及非规范化设计在数据库中的运用
- 得到一个数据库的触发器的sql
- 触发器在增量同步数据的运用. (摘)
- WebLogic运用DB的Java控件访问数据库
- 如何在不支持数据库的asp主页上运用ado
- 在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库
- 数据库运用XML操作
- 触发器中调用远程链接的数据库的配置方法
- 用存储过程或触发器+作业调度进行数据库同步
- 通过触发器实现数据库的即时同步
- DELPHI入门3--最简单的数据库连接,运用
- 通过触发器实现数据库的即时同步方案
- 通过触发器实现数据库的即时同步(摘zjcxc)
- 设计模式在Java数据库编程中的运用
- 如何查看当前数据库中有哪些触发器