当触发器需要access自身表时的问题 写触发器碰上需要access自身表,经高手指点了2种处理方法:1、使用自治事务;2、用行级触发器+语句级触发器+包或临时表来做;问一下这两种方法哪种比较好?各有什么优缺点?多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好不是before触发器,这个 tom kyte在他的文章中做过试验,有些情况会导致触发器执行两次,具体忘了原始子句+触发器完全可以用存储过程来解决。 具体需求如下:用户A下只有3个表,A2,A3,A4,当A4中的status改为2时,把表A2中相关的数据用触发器写到表B中,表B和A2结构相同。为了能看清楚表结构,空格用代替表A2:字段名称 。。外键 。主键。 说明deal_plan_step_id PK deal_plan_id。TK_DealPlan.DealPLanID step_no step_desc 表A3:字段名称 。外键 。。主键 说明deal_plan_order_unit_id PK deal_plan_step_id 。A2.DealPlanStepID order_unit_desc plan_action_unit_type_id 表A4:字段名称 外键 主键 说明public_issue_plan_order_id。 PK deal_plan_order_unit_id 。A3.DealPlanOrderUnitID record_type message_content create_time status 可能取值为1,2,3,4 简单看了下,感觉不向你说的那样要用什么自治事务和行级和语句级触发器你只是对A4创建触发器,来对A2和A3做动作,这里如果在A2往A3写资料的时候,用到A4的数据,那么你可以用:new或者:old关键字来获取啊不存在再去select * from A4;不知道你明白我的意思了没? 没太明白我是要在A2上做触发器,当A4发生变化时,通过A3找到A2相应的数据触发到B上。 奇怪?当A4发生变化时,你咋能触发A2表上的触发器呢?除非是在A2触发器中查询A4中的状态,再根据状态进行A2写到A3这样的话,也不难啊,就用:NEW或者:old来抓取相应的值。好了 我回家了,如果不行,把你需求再具体点,给点数据或者表结构,晚上回家又时间给你看看 求教:字符串按顺序连接 ORACLE中,要删除有外键关系的表,存储过程怎么写? 求一条SQL ,先谢谢了 求sql:根据表的一个字段合并记录 序列授权的一个问题,急 刚刚升一星,散分 ORA-14060: 不能更改表分区列的数据类型或长度,怎么更改分区列 java操作oracle存储过程出错,请各位帮忙看下错在哪里,本人小白,谢谢 为什么SQLPULS连接时出现“没有监听器” ORACLE 的 decode函数能否嵌套其他语句呢? Oracle用函数写的一个例子 数据库压缩问题
为了能看清楚表结构,空格用代替表A2:
字段名称 。。外键 。主键。 说明
deal_plan_step_id PK
deal_plan_id。TK_DealPlan.DealPLanID
step_no
step_desc
表A3:
字段名称 。外键 。。主键 说明
deal_plan_order_unit_id PK
deal_plan_step_id 。A2.DealPlanStepID
order_unit_desc
plan_action_unit_type_id
表A4:
字段名称 外键 主键 说明
public_issue_plan_order_id。 PK
deal_plan_order_unit_id 。A3.DealPlanOrderUnitID
record_type
message_content
create_time
status 可能取值为1,2,3,4
这里如果在A2往A3写资料的时候,用到A4的数据,那么你可以用:new或者:old关键字来获取啊
不存在再去select * from A4;不知道你明白我的意思了没?
我是要在A2上做触发器,当A4发生变化时,通过A3找到A2相应的数据触发到B上。
除非是在A2触发器中查询A4中的状态,再根据状态进行A2写到A3
这样的话,也不难啊,就用:NEW或者:old来抓取相应的值。好了 我回家了,如果不行,把你需求再具体点,给点数据或者表结构,晚上回家又时间给你看看