oracle触发器,update一张表时,将update的那一行数据中的部分值更新到另一张表。字段定义一样
我就是这么写的,但是报触发器无效,且未通过验证;CREATEORREPLACETRIGGERtest_triggerBEFOREUPDATEONinp_ta_tranFO...
我就是这么写的,但是报触发器无效,且未通过验证;
CREATE OR REPLACE TRIGGER test_trigger
BEFORE UPDATE ON inp_ta_tran
FOR EACH ROW
BEGIN
INSERT INTO trans_record (sbrlsh,nzycs,szcks,szrks,dzksj)
VALUES (:new.sbrlsh,:new.nzycs,:new.sksdm,:new.sckdm,:new.dcyrq)
END; 展开
CREATE OR REPLACE TRIGGER test_trigger
BEFORE UPDATE ON inp_ta_tran
FOR EACH ROW
BEGIN
INSERT INTO trans_record (sbrlsh,nzycs,szcks,szrks,dzksj)
VALUES (:new.sbrlsh,:new.nzycs,:new.sksdm,:new.sckdm,:new.dcyrq)
END; 展开
2个回答
展开全部
CREATE OR REPLACE TRIGGER TR_t1_u
AFTER UPDATE ON t1---当修改了T1时触发
FOR EACH ROW
BEGIN
update t2 set col1 = :new.col1,col2=:new.col2,...
where id = :old.id; -- id是关键列,不能修改;或者其他关联条件
END;
更多追问追答
追问
才发现我的问题表述有错误。。。
是要‘插入’到另一张新表,表是空的。。。。
追答
那就insert啊
CREATE OR REPLACE TRIGGER TR_t1_u
AFTER UPDATE ON t1---当修改了T1时触发
FOR EACH ROW
BEGIN
insert t2(id,col1,col2,col3,...) values(:new.id,:new.col1,:new.col2,:new.col3,...);
END;
那如果第一次插入后,再次修改后,是插入还是更新?
总之大概这么写。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询