一个完整的Oracle触发器示例
来源:互联网 发布:黑马程序员 android 编辑:程序博客网 时间:2024/05/16 02:08
本文通过示例描述Oracle中的触发器的写法,旨在描述一个简单记录监控日志的的触发器的写法。希望对初学者能有帮助.
1. 准备工作:
1) 创建一张表,在SQLplus控制台执行如下脚本:
CREATE TABLE PRODUCT
(
"ID" VARCHAR(10) NOT NULL,
"NAME" VARCHAR(10) NOT NULL,
"PRICE" NUMBER(10),
PRIMARY KEY("ID")
);
2) 插入一些测试数据,在SQLplus控制台执行如下脚本:
INSERT INTO PRODUCT(ID,NAME,PRICE) VALUES('1','CAT',50);
INSERT INTO PRODUCT(ID,NAME,PRICE) VALUES('2','DOG',25);
INSERT INTO PRODUCT(ID,NAME,PRICE) VALUES('3','FISH',42);
INSERT INTO PRODUCT(ID,NAME,PRICE) VALUES('4','PIGEON',34);
2. 创建一张表,在SQLplus控制台执行如下脚本:
create table product_update_log
(
id number(5) not null,
username varchar(10),
operation varchar(6),
operatetime date,
primary key(id)
);
3.创建一个序列,在SQLplus控制台执行如下脚本:
create sequence logsequence start with 1 maxvalue 999;
4.创建一个触发器,在SQLplus控制台执行如下脚本:
create or replace trigger product_log
after insert or update or delete
on product
declare
operation product_update_log.operation%TYPE;
begin
if inserting then
operation := 'insert';
elsif updating then
operation := 'update';
elsif deleting then
operation := 'delete';
else
operation := 'unknown';
end if;
dbms_output.put_line(operation);
insert into product_update_log values(logsequence.nextval,user,operation,sysdate);
dbms_output.put_line('success');
end;
/
5. 测试
update PRODUCT set price=24 where id=3;
这时控制台输出:
update
success
然后在SQLPlus去查询product_update_log表中内容,发现应该多了一条记录:
ID USERNAME OPERATION OPERATETIME
---------- -------------------- ------------ --------------
1 SYSTEM update 30-04-08
这说明我们的触发器起了作用,以后只要是对product表有insert,update或者delete操作动作的,Oracle数据库服务会自动记录一条记录在这张表中。
到这里全部完成了,如果读者有问题的话,欢迎到程式先锋Java学习论坛上交流。
来源:程式先锋,转载请注明本文来自程式先锋网站 http://www.javabiz.cn
- 一个完整的Oracle触发器示例
- 一个完整的触发器文件示例
- 一个简单的触发器示例
- 一个简单的ORACLE触发器
- 一个Oracle触发器的例子
- 两个经典的Oracle触发器示例
- 两个经典的Oracle触发器示例
- 两个经典的Oracle触发器示例
- 两个经典的Oracle触发器示例
- 两个经典的Oracle触发器示例 .
- 两个经典的Oracle触发器示例
- 02.两个经典的Oracle触发器示例
- 两个经典的Oracle触发器示例
- 自己做的一个触发器小示例
- 自己做的一个触发器小示例
- 自己做的一个触发器小示例
- Oracle触发器简单示例
- oracle触发器示例
- web标准化、XHTML与CSS层叠样式表的关系
- 查看当前进程,或死锁进程,并能自动杀掉死进程
- 讲述如何开发一个控件,很有价值
- 关于对sql2000查询结果进行相关度排序的测试
- CSS技术结合图像实现动态效果的菜单导航
- 一个完整的Oracle触发器示例
- 讲述如何开发一个控件,很有价值(二)
- fopen的实现
- js中事件重叠处理
- 搜索引擎优化-如何用CSS图片做背景
- 查询表主键外键信息的SQL
- Delphi中串口通信的实现
- MySQL实现表中取出随机数据
- 在DIVCSS排版中新闻列表的制作方法