> 데이터 베이스 > MySQL 튜토리얼 > Oracle外键级联更新延迟约束和触发器实现

Oracle外键级联更新延迟约束和触发器实现

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 17:09:08
원래의
1523명이 탐색했습니다.

Oracle外键只有级联删除没有级联更新,但是有时候系统中可能需要这样的功能,所以这里记录下实现过程。

Oracle外键只有级联删除没有级联更新,但是有时候系统中可能需要这样的功能,所以这里记录下实现过程。

Oracle中的约束有两种方式,一种是延迟约束,,一种是非延迟约束。所谓的非延迟约束就是说更改记录的时候会立刻进行约束条件的查看,是否因为违反了某些约束条件而不能执行修改,而延迟约束则表示不会再刚进行修改的时候进行约束查看,只有提交的时候才会检查。Oracle的级联更新就是使用这个特性来实现的。

1、首先建立外键的时候设置为延迟约束。具体的语句如下:

就是为TEST_2表增加外键,引用到TEST_1上,并且设置为级联删除和延迟约束(DEFERREABLE)。如果是使用了Oracle的Sql Developer工具,可以在约束条件一栏查看是否设置成功。

2、然后设置触发器

在TEST_1表上设置触发器,当表的主键改变了就级联的更新表TEST_2中对应的字段。

经过1和2两步就可以实现外键的级联更新了。基本思想就是在更新主表主键的时候进行了延迟约束,不会立刻检查,而触发器在更新之后就会级联更新附表的外键,然后提交,这是会进行约束检查,由于外键已经级联更新过了,所以这里不会有问题。

linux

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿