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

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

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

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

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

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

2、然后设置触发器

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

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

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1938466.html

(0)
上一篇 2025年2月22日 23:43:15
下一篇 2025年2月22日 23:43:43

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Redhat Enterprise Edition 5安装Oracle 11g

    Redhat Enterprise Edition 5安装Oracle 11g 系统安装:     选择尽量多的开发软件,X Windows为必需。 一.创建必要的用户,组和目录    #mkdir -p /u01/Oracle    #g…

    数据库 2025年2月23日
    100
  • Oracle存储过程的格式

    存储过程在程序中是常用的,在项目中我也经常写一些,但是犯了一个错误是,我老是把sql语句的过程,写成一长串sql语句,然后按正 存储过程在程序中是常用的,在项目中我也经常写一些,但是犯了一个错误是,我老是把sql语句的过程,写成一长串sql…

    数据库 2025年2月23日
    100
  • Oracle Manager Server安装配置

    安装oms服务在登陆到oms之前,你必须首先安装oms服务。 启动Oracle universal installer,查看已安装产品,展开oracle主目录–or 安装oms服务在登陆到oms之前,你必须首先安装oms服务。 …

    数据库 2025年2月23日
    100
  • Oracle正常启动OEM或OMS关键

    能否正常启动OEM或OMS关键有以下两点: 第一.Oracle的系统服务是否开启; 第二.登录时用的用户名和口令是否正确。 那么先针 能否正常启动OEM或OMS关键有以下两点: 第一.Oracle的系统服务是否开启; 第二.登录时用的用户名…

    数据库 2025年2月23日
    100
  • Oracle常用sql语法集合

    表: select * from cat; select * from tab; select table_name from user_tables; 视图: select text from u 表:   select * from c…

    数据库 2025年2月23日
    100
  • Oracle中的数据类型和表的管理

    日期类型 date 包含年月日和时分秒 timestamp 这是Oracle9i对date数据类型的扩展 (时间戳)date类型的时间更精确 图片类 日期类型   date 包含年月日和时分秒   timestamp 这是Oracle9i对…

    数据库 2025年2月23日
    100
  • Oracle 11g ASM数据库升级compatible

    我的数据库(asm存储)是11.1升级 11.2的。今天在做延迟段创建时报一定要升级到11.2才能应用此功能。查看我的实例的compatible是 我的数据库(asm存储)是11.1升级 11.2的。 今天在做延迟段创建时报一定要升级到11…

    数据库 2025年2月23日
    100
  • Oracle 生成序列号存储过程

    项目中经常要根据年月日规则生成序列号,简单写了个存储过程可根据需要扩展 一、序列号存储表 — Create tablecreate table SYS_ 项目中经常要根据年月日规则生成序列号,简单写了个存储过程可根据需要扩展 一…

    数据库 2025年2月23日
    100
  • Oracle 10g 监听器启动后停止的解决办法

    今天遇到了监听器启动问题,问题原因是原先机器装Oracle的时候没有问题,后来更改机器名后,监听器就再无法启动了,问题定位是由 oracle 10g 监听器启动后停止的解决办法 [日期:2011-11-29]来源:Linux社区 作者:ti…

    数据库 2025年2月23日
    100
  • Oracle物理读与逻辑读

    Physical Reads(物理读): 逻辑读内容在内存中,不需要读硬盘。 计算公式可以如下:Physical Reads = db block gets + consist Physical Reads(物理读): 逻辑读内容在内存中,…

    数据库 2025年2月23日
    100

发表回复

登录后才能评论