当前位置:数据库 > Oracle >>

关于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 删除视图

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,