触发器
来源:互联网 发布:运城淘宝店长招聘网 编辑:程序博客网 时间:2024/06/06 12:51
DML 触发器:
对表执行Insert、Update、Delete操作时激发
可以用于执行校验、设置初使值、审核改变、甚至禁止某种DML操作
语法:
CREATE OR REPLACE TRIGGER 触发器名称
{AFTER|BEFORE } -- 指定触发时机
{INSERT OR DELETE OR UPDATE} -- 指定触发器事件
ON 表名 --指定所监控的表
{FOR EACH ROW|FOR EACH STATEMENT} -- 指定触发器次数
BEGIN
--代码;
END;
相关概念:
AFTER|BEFORE:在什么事件之前或之后执行
INSERT|DELETE|UPDATE:什么事件
ON 表名:触发器建在什么表上,即监控什么表
FOR EACH ROW:行级触发,示例:delete from t1,删除1000行,则执行1000次(一行一次)
FOR EACH STATEMENT:语句级触发,示例: delete from t1,删除1000行,则执行1次(一句一次)
:new 行变量:保存事件发生时新数据所在行,只有insert事件和update事件才有新数据
:old 行变量:保存事件发生时旧数据所在行,只有delete事件和update事件才有旧数据
判断发生的是什么触发事件:inserting表示插入事件,
updating表示更新事件,
deleting表示删除事件。
create or replace trigger trig_emp2 after insert or delete or update of sal,ename on emp2 --行级触发,每一行有相应的事件发生时,都会触发begin里面的方法体 for each rowbegin if inserting then dbms_output.put_line('插入数据了'); dbms_output.put_line('插入的员工姓名是:'|| :new.ename || ' 员工月薪是:'|| :new.sal); elsif updating then dbms_output.put_line('更新数据了,有人涨工资咯'); elsif deleting then dbms_output.put_line('删除数据了'); end if;end;
我们如果想更新指定字段时,才触发事件,可以使用 update of 字段名,就像上面的update of sal 一样。
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 在Android中使用ContentResolver查询系统数据库时使用外键查询与distinct的小技巧
- android号码匹配位数修改
- VC判断窗口最小化或最大化函数
- DEV 通过配置工具可以不用 pause 语句暂停
- ORA-24399:invalid number of connections specified
- 触发器
- python的自动化测试模块
- SQLite学习手册(数据表和视图)
- 接下来学习一下HibernateTemplate
- 哥几个哦,今天 我为我们感动了
- SQLite学习手册(索引和数据分析/清理)
- #ifdef__cplusplus
- UITextField的总结
- Eclipse启动参数设置