我有两个表,当A中的某一字段的值UPDATE后,触发触发器,向另一表中添加一条相关记录。请教如何写?
解决方案 »
- 提取游标和存储过程
- Oracel 10g 数据库类工具问题(连接不上数据库)
- 100分求助:如何把服务器server1的oracle数据库db1,迁移到服务器server02的oracle上,并保持数据库同名,即db1。
- 改进查询速度 我写的东西查询速度很慢 有高手能帮改代码改进查询速度吗?
- 大家帮我看看这个语句Oracle下怎么写
- 这种情况下oracle能否自动加锁?
- ORA-12560: TNS: 协议适配器错误
- 求一条报表统计查询语句!急!急!急!
- oracle9i在linux下的安装问题!!再线等(马上揭贴)
- asp.net用Daab访问oracle问题,求救啊?(分不够再加,10000分都行,)
- 关于ORA-00604错误,请帮忙!
- oracle主体复制时,复制机上oracle一定要建立一个连接吗?
AFTER UPDATE ON TABLE1
FOR EACH ROW
BEGIN
INSERT INTO TABLE2
……;
EXCEPTION
WHEN OTHERS THEN
……;
END;
AFTER UPDATE of col_name ON TABLEa
FOR EACH ROW
BEGIN
INSERT INTO TABLEb (...) values (:new.col,.....);EXCEPTION
WHEN OTHERS THEN
……;
END;
如:
create or replace trigger XXXX
before insert on XXX
for each row
begin........
end;
id number(8),
compname varchar2(20),
compcode varchar2(50),
chapter varchar2(50),
compnumber number(8),
dealdate date
);create table a2 (
id number(8),
compname varchar2(20),
compcode varchar2(50),
chapter varchar2(50),
compnumber number(8),
dealdate date
);
CREATE OR REPLACE TRIGGER tr_bf_test
BEFORE INSERT OR UPDATE OR DELETE OF ID ON a1
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO a2
VALUES(:new.id,:new.compname,:new.compcode,:new.chapter,:new.compnumber,:new.dealdate);
ELSIF UPDATING THEN
UPDATE a2 SET id=:new.ID,
compname=:new.compname,
compcode=:new.compcode,
chapter=:new.chapter,
compnumber=:new.compnumber,
dealdate=:new.dealdate
WHERE ID = :old.ID;
ELSE
DELETE FROM a2
WHERE ID = :old.ID;
END IF;
END tr_bf_TTRIG;
/