关于oracle联级更新的思考

表和表的关系:一对一,一对多,多对多。

思考:

如缴费,或者是别的操作,肯定涉及到状态的改变,比如缴费成功后,用户看到他自己的缴费状态肯定是已缴费,管理员看的那个表也显示他缴费了,字段状态肯定是改变的,但是如何在逻辑判断后,所有涉及到这个功能的表的相关信息都会改变呢?手动添加肯定不行,也太麻烦,还容易错,但是考虑‘如何自动更新数据’的问题,我想了想,涉及到联级更新,不仅仅是字段查询的问题了,考虑用什么样的方法去实现这一点,比如外键,但是外键似乎不太适用于一对多和多张表的关系,又比如单据主从表,生成明细是先生成从表再主表的,而且依赖关系比较复杂,维护起来也不容易,还耗费资源,第二个看了有文章说使用延迟约束和触发器,这个准备试一试
http://www.cnblogs.com/zheng-hong-bo/p/3549933.html

 

关于:

延迟约束

延迟约束,只在提交的时候进行约束检查
非延迟约束,在修改记录时(对应PL/SQL中的post change按钮 或者DML语句commit前的update)会立刻进行约束条件检查,如果违反越约束条件便不能修改。

通过延迟约束在主表上建立触发器,触发器更新子表的外键,来实现级联更新。
注意:当表的外键引用同一个表的主键时,触发器无法进行级联更新



 

 

ps:公司里的小姐姐建议把这个写再逻辑里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值