是否可以同时具有外键约束和保持引用完整性的触发器?

时间:2014-09-17 08:55:21

标签: sql oracle triggers foreign-key-relationship

是否可以同时使用外键约束和保持引用完整性的触发器?

我认为这是不可能的,我们必须删除约束并使用触发器保持参照完整性。为了扩展我的描述,假设你有两个表,其中一个表有一个主键,另一个表有一个外键引用第一个表,主键列。所以现在可以添加以下代码

    create or replace TRIGGER TABLE1_TABLE2
    after update of TABLE1_PRIMARY_KEY on TABLE1

当然我想到了失去约束并继续使用触发器,但这是唯一的方法吗?

顺便说一下,这段代码只是为了练习,我知道更新表的主键并不是一个好主意。

我在一个微软网站上发现了一篇有用的文章,证实我的想法应该删除约束。但是,Oracle的解决方案当然可能与任何其他数据库不同。这篇文章是关于Implementing Referential Integrity and Cascading Actions的,相关的部分是“使用触发器实现ON DELETE CASCADE和ON UPDATE CASCADE”,然后“继续之前,你需要删除现有的外键”。

1 个答案:

答案 0 :(得分:0)

在Oracle中执行此操作没有问题。你可以同时拥有约束和触发器。