oracle中触发器实现某个表的历史修改痕迹记录的问题
时间:2011-12-02
来源:互联网
各位大虾好,有一个这样的问题不知道能不能用触发器实现,情况如下
我有两个表:legal、legal_history ,legal表中有好多数据会进行修改,现在我想通过触发器记录下所有的修改痕迹,比如说legal表中有条数据为A,改后这条数据变成了B,我需要把A记录后legal_history中,下次如果再改,由B变成C,那么legal_history表中记录下B这条记录,依此类推,了解到触发器的一些作用后,我想如果这种方法可以实现,那么比程序的效率将要快,个人认为,只是不知道我的想法触发器能不能满足,请各位高手指点,谢谢
数据库是oracle
我有两个表:legal、legal_history ,legal表中有好多数据会进行修改,现在我想通过触发器记录下所有的修改痕迹,比如说legal表中有条数据为A,改后这条数据变成了B,我需要把A记录后legal_history中,下次如果再改,由B变成C,那么legal_history表中记录下B这条记录,依此类推,了解到触发器的一些作用后,我想如果这种方法可以实现,那么比程序的效率将要快,个人认为,只是不知道我的想法触发器能不能满足,请各位高手指点,谢谢
数据库是oracle
作者: niuge798588567 发布时间: 2011-12-02
触发器的基本用法,大致是这样的SQL code
create or replace trigger tr_legal_change after update on legal for each row declare begin insert into legal_history values(:old.a,:old.b,:old.c,sysdate); end tr_legal_change;
作者: dws2004 发布时间: 2011-12-02
引用 1 楼 dws2004 的回复:
触发器的基本用法,大致是这样的SQL code
create or replace trigger tr_legal_change
after update on legal
for each row
declare
begin
insert into legal_history
values(:old.a,:old.b,:old.c,sysdate……
触发器的基本用法,大致是这样的SQL code
create or replace trigger tr_legal_change
after update on legal
for each row
declare
begin
insert into legal_history
values(:old.a,:old.b,:old.c,sysdate……
+1,利用触发器在修改记录时保存原始值。
作者: imp860124 发布时间: 2011-12-02
正是触发器的典型应用啊。
示例代码:
SQL code
示例代码:
SQL code
CREATE OR REPLACE TRIGGER TriggerUpdateLegeal AFTER UPDATE ON legal FOR EACH ROW DECLARE BEGIN INSERT INTO legal_history VALUES(:OLD.字段1, :OLD.字段2, ....); END TriggerUpdateLegeal;
作者: LuiseRADL 发布时间: 2011-12-02
历史表最好加上一个备注字段,将操作日期、操作员及操作说明等信息保存起来。
作者: iamlaosong 发布时间: 2011-12-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28