触发器
来源:互联网 发布:java下载图片怎么过滤 编辑:程序博客网 时间:2024/06/08 20:03
触发器:隐式执行的存储过程,事件发生时候自动发生。
用途:当表数据发生改变时,用来校验表。
根据数据库发生的事件来完成维护工作。
分类:dml触发(必须掌握):监控表
dml触发器:定义语法
create or replace trigger 触发器名称
after|before 触发时间
insert |update|delete 触发事件类型。可以写多个类型 比如 update or delete
on 表 (作用于哪个表)
for each row (针对执行语句的每行) | for each statment (针对每条执行语句,不写则默认为该种方式)
declare 定义变量--可写可不写,不是必须的
begin
触发执行语句;
(--可以写条件位句,不是必须的
-- update-updating ,delete-deleting ,insert-inserting
if updating then
--如果是更新语句,则执行if条件里面的语句
end if;
)
end;
删除触发器:drop trigger 触发器名称
--例子
--基本创建例子
CREATE OR REPLACE TRIGGER t_emp
BEFORE UPDATE ON myemp FOR EACH ROW
BEGIN
dbms_output.put_line('myemp中的数据被修改了');
END;
/
--可以指定列创建触发器,只有该列被修改了才触发
CREATE OR REPLACE TRIGGER t_emp
BEFORE UPDATE OF comm ON myemp FOR EACH ROW
BEGIN
dbms_output.put_line('myemp中的comm被修改了');
END;
/
--通过触发器设置id自动递增
CREATE SEQUENCE se ;--创建序列
CREATE TABLE tb_test(t_id INTEGER ,t_name VARCHAR2(20));
CREATE OR REPLACE TRIGGER t_inc--创建一个触发器,
BEFORE INSERT ON tb_test FOR EACH ROW
BEGIN
SELECT se.nextval INTO :new.t_id FROM dual;
--:new.t_id := se.nextval;
END;
/
:new 和 :old 表示执行语句的每一条数据(只针对行级触发器)
:new 针对insert和update有效,表示执行过后新的数据
:old 针对delete和update有效,表示执行之前的数据
用法
:new.列名
:old.列名
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- 触发器
- java注解的详解
- 类大小测试(空类、带含静态和非含、虚和非虚的单继承和多继承等)
- 中国破灭了日本50多年的一个梦:收回北方四岛
- day01-MinutesToMidnight
- 宏定义
- 触发器
- 十年
- Detailed ISDN Cause Codes
- 由12306.cn谈谈网站性能技术
- 智能电视之四大主流的操作系统简介
- 一起学DNS系列(十三)图文详说A、CNAME、MX和NS记录
- 常见Web技术之间的关系,你了解多少?
- Demo for Android Tab Widget
- 编程动向