请大家帮我看看,这个oracle的触发器,为什么不能运行?(50分)

  • 主题发起人 主题发起人 zjwyyh
  • 开始时间 开始时间
Z

zjwyyh

Unregistered / Unconfirmed
GUEST, unregistred user!
create or replace trigger Trg_gw_khd<br>&nbsp; before insert on kh_gw_khd<br>&nbsp; for each row<br>declare<br>&nbsp; -- local variables here<br>&nbsp; maxValue number;<br>begin<br>&nbsp; --gw_khdID的值改为取最大值+1的办法<br>&nbsp; select max(gw_khdID)+1 into maxValue from kh_gw_khd;<br>&nbsp; select maxValue into :new.gw_khdID from dual;<br>end Trg_gw_khd;
 
Trigger里是不可以对本表作查询的,可以使用序列嘛
 
使用序列是对的 但是好像触发器可以查询本表的吧<br>不过我建议第二句<br>:new.gw_khdID =maxValue; &nbsp;就可以了 你这是行级触发器 update干嘛啊?
 
就是不想用序列,才想到用这样的触发器的。如果用序列如下就可以了:<br>&nbsp; select 序列.nextvalue into :new.gw_khdID from dual;<br><br>&nbsp; 错误原因已经知道了!!!!. &nbsp;的确是在Trigger里是不可以对本表作查询的。但是通过变化表就可以实现了。
 
后退
顶部