【问题标题】:Is it possible to have both foreign key constraint and a trigger that keep the referential integrity?是否可以同时拥有外键约束和保持参照完整性的触发器?
【发布时间】:2014-09-17 08:55:20
【问题描述】:

是否可以同时拥有外键约束和保持参照完整性的触发器?

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

    create or replace TRIGGER TABLE1_TABLE2
    after update of TABLE1_PRIMARY_KEY on TABLE1

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

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

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

【问题讨论】:

    标签: sql oracle triggers foreign-key-relationship


    【解决方案1】:

    在 Oracle 中这样做没有问题。您可以同时拥有约束和触发器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多