关于oracle级联更新on update 的一个问题,
本人新手,小白见谅
今晚建了两个表 g_cardapply 与g_cardapplydetail (工卡申请)
其中两个表都有字段 申请状态 :g_state , 想设置一个级联更新。
语句如下:
SQL> alter table g_applycarddetail add constraint
2 FK_STATE FOREIGN KEY (g_state) references
3 g_cardapply(g_state)
4 on update cascade
5 ;
但是总是提示 ORA-00905: 缺失关键字 ,
如果将 update 改成 delete 则提示ORA-00942: 表或视图不存在 ,
一直弄不懂, 请路过的高手指教下 谢谢
答案:oracle不支持级联更新,
可以用触发器实现:
Create Or Replace Trigger g_Cardapply_Tr
After Update Of g_State On g_Cardapply
For Each Row
Begin
Update g_Cardapplydetail a
Set a.g_State = :New.g_State
Where a.g_State = :Old.g_State;
End;
其他:oracle只有级联删除,或者删除至空。
级联更新需要触发器或者通过存储过程 看了一下,都说oracle不支持级联
从下面这找到了oracle 级联的相关东西上,
http://blog.sina.com.cn/s/blog_6fffae000100nzxw.html
看看对你有没有帮助
试了一下,可以成功,不过实再不怎么样,还是用触发器来实现吧。
即然你用了oracle就遵守他的规则吧。
上一个:Oracle 10G 批量导入SQL脚本数据
下一个:oracle 删除视图