免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1973 | 回复: 7
打印 上一主题 下一主题

新手上路:如何写这个TRIGGER?谢谢! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-07-04 20:49 |只看该作者 |倒序浏览
我在oracle中有2个表,假如一个是user_table,一个是user_modify_table,我想写一个trigger,它实现:当往表1插入数据的同时,往表2插入同样的数据;当修改表1的数据时,往表2插入两条数据,这两条数据分别是表1修改前后的数据。希望各路大侠指点迷津,谢谢!

论坛徽章:
0
2 [报告]
发表于 2004-07-05 10:51 |只看该作者

新手上路:如何写这个TRIGGER?谢谢!

典型的业务日志型处理,不要说是做帐务部分的业务。
在 user_table 上创建两个 trigger,for row insert, row update,然后在 row insert 的 trigger 中执行插入 user_modify_table,在 row update 的 trigger 中一样了。

很久没有用过 trigger 了,建议你去查些详细的资料。其实 trigger 对数据库性能影响不小的,好在你的就是 insert,业务简单到没什么。另外,你难道不对 delete 做控制?或者你的 user_table 本身就不可以 delete。

论坛徽章:
0
3 [报告]
发表于 2004-07-05 15:22 |只看该作者

新手上路:如何写这个TRIGGER?谢谢!

原帖由 "singledream" 发表:
典型的业务日志型处理,不要说是做帐务部分的业务。
在 user_table 上创建两个 trigger,for row insert, row update,然后在 row insert 的 trigger 中执行插入 user_modify_table,在 row update 的 trigger 中一..........

楼主说的没错.

论坛徽章:
0
4 [报告]
发表于 2004-07-05 22:37 |只看该作者

新手上路:如何写这个TRIGGER?谢谢!

谢谢singledream大哥!小弟回头试试!客户不要求对delete做日志记录!

论坛徽章:
0
5 [报告]
发表于 2004-07-07 14:48 |只看该作者

新手上路:如何写这个TRIGGER?谢谢!

create or replace trigger tri_user_table
after insert or update on user_table
begin
    if inserting then
       insert into user_modify_table values (:new.column1,....);
    elsif updating then
       insert into user_modify_table values(ld.column1,....);
       insert into user_modify_table values (:new.column1,....);
    end if;
end;

论坛徽章:
0
6 [报告]
发表于 2004-07-07 17:28 |只看该作者

新手上路:如何写这个TRIGGER?谢谢!

如果象楼主这样做,在UPDATE的时候不是向表2插入已经存在的记录了,这样可以吗?问题的提出是不是有问题?小弟初学,提点疑问。

论坛徽章:
0
7 [报告]
发表于 2004-07-07 18:37 |只看该作者

新手上路:如何写这个TRIGGER?谢谢!

客户要求修改记录的时候,往日志表里插入2条记录,1条是修改前的,另一条是修改后的。没错!

论坛徽章:
0
8 [报告]
发表于 2004-07-07 19:31 |只看该作者

新手上路:如何写这个TRIGGER?谢谢!

发个贴,试试可不可以发了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP