加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 建立一对一关系

发布时间:2021-04-02 23:01:07 所属栏目:站长百科 来源:网络整理
导读:可以通过约束在Oracle中完全建模一对一关系吗?换句话说,PARENT实体总是完全具有子实体的n-CHILDREN,并且每个孩子只有一个父母. 将n视为数据库常量. 解决方法 即使多个会话正在进行更新,这样做也是非常容易的.如果你尝试使用触发器,你会陷入混乱,Oracle的声

可以通过约束在Oracle中完全建模一对一关系吗?换句话说,PARENT实体总是完全具有子实体的n-CHILDREN,并且每个孩子只有一个父母.

将n视为数据库常量.

解决方法

即使多个会话正在进行更新,这样做也是非常容易的.如果你尝试使用触发器,你会陷入混乱,Oracle的声明性约束不足以表达这一点.

它可以按如下方式完成: –

>在父表和子表上创建物化视图日志
>创建将它们连接在一起的物化连接视图,并计算按父组分组的子项数.这必须是快速通知
>在物化连接视图上设置一个约束,即子记录的计数必须等于“n”(数据库常量)

然后,您可以执行一系列插入/更新/删除语句.提交时,物化视图将刷新,如果不满足条件,则此时将出现约束违规错误.

奖励的一点是只包括未通过约束的行进入物化视图(HAVING count(ChildId)<> 5),因此您不会浪费任何存储空间.

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!