触发器学习
来源:互联网 发布:网络用语什么叫狗粮 编辑:程序博客网 时间:2024/05/22 03:12
触发器学习
查询触发器:
select table_owner, table_name,trigger_body from user_triggers
删除触发器:
DROP TRIGGER trigger_name
(但触发器一般是这样建的:create or replace ... 也就是如果存在的话,就可以替换)。
demo1:
使用触发器实现对or_long_test的表DML操作时,把操作记录在另一张表or_long_test_log里。
#建表:
create table OR_LONG_TEST(
int_id number(10) primary key,
vc_user_name varchar2(30),
int_age number(3),
vc_comment varchar2(80)
);
insert into OR_LONG_TEST(int_id,vc_user_name,int_age) values(1,'张家港',28);
insert into OR_LONG_TEST(int_id,vc_user_name,int_age) values(2,'李静',24);
#日志表
create table or_long_test_log( vc_user_name varchar2(30),action varchar2(20), time date);
#触发器:
create or replace trigger biud_or_long_test_log
after insert or update or delete
on or_long_test
declare
l_action or_long_test_log.action %type;
Begin
if inserting then
l_action:='Insert';
elsif updating then
l_action:='Update';
elsif deleting then
l_action:='Delete';
else raise_application_error(-20001,'You should never ever get this error.');
end if;
insert into or_long_test_log(vc_user_name,action,time)
values(user,l_action,sysdate);
End;
demo2: 实现数据同步
对把对表or_long_test 增、删、改 的数据同步到or_long_test_copy
先建表:
create table or_long_test_copy as select * from or_long_test
建触发器:
create or replace trigger buid_or_long_test_copy
after insert or update or delete
on or_long_test
referencing old as old_value
new as new_value
for each row
begin
if inserting then
insert into or_long_test_copy(int_id,vc_user_name,int_age)
values(:new_value.int_id, :new_value.vc_user_name, :new_value.int_age);
elsif updating then
update or_long_test_copy set vc_user_name = :new_value.vc_user_name, int_age= :new_value.int_age
where int_id = :new_value.int_id;
elsif deleting then
delete from or_long_test_copy where int_id = :old_value.int_id;
end if;
end;
insert 一条数据:
insert into OR_LONG_TEST(int_id,vc_user_name,int_age) values(7,'周杰伦',32)
update or_long_test set vc_user_name = '林子祥' where int_id =5
INT_ID VC_USER_NAME INT_AGE VC_COMMENT
1 张家港 28
2 李静 24
3 陈明 26
4 林海 30
5 林子祥 29
6 陈静 18
7 周杰伦 32
参考:
http://gaogengzhi.iteye.com/blog/266505
http://gaogengzhi.iteye.com/blog/266530
http://www.cnblogs.com/huyong/archive/2011/04/27/2030466.html
- 触发器学习
- 触发器学习
- 触发器学习
- 触发器学习
- oracle触发器学习
- Oracle 学习笔记 触发器
- 触发器学习笔记
- sql触发器入门学习
- sql触发器入门学习
- oracle 触发器学习笔记
- 触发器的学习
- 触发器学习(二)
- 学习触发器笔记
- Spring 定时触发器学习
- Oracle触发器学习
- Oracle触发器学习笔记
- DDL触发器学习整理
- 触发器 测试~!学习~! 实例~!
- IIS的安装和部署网站
- JS技巧整理
- poj 3624 Charm Bracelet 01背包
- POJ1146
- oracle表访问方式
- 触发器学习
- Zend Studio 目前公认的最强大的PHP编辑器
- Codeforces 161D 树形DP
- 如何在文本框中显示提示的信息,并且提示信息的字是灰色的
- 公司技术管理角度看C++游戏程序员发展
- spring与servlet环境配置
- 111
- UVA572
- 信息驾驶舱(管理驾驶舱)