Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 是否可以同时具有外键约束和保持引用完整性的触发器?_Sql_Oracle_Triggers_Foreign Key Relationship - Fatal编程技术网

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

Sql 是否可以同时具有外键约束和保持引用完整性的触发器?,sql,oracle,triggers,foreign-key-relationship,Sql,Oracle,Triggers,Foreign Key Relationship,是否可以同时具有外键约束和保持引用完整性的触发器 我认为这是不可能的,我们必须删除约束并使用触发器保持引用完整性。为了扩展我的描述,假设您有两个表,其中一个表有一个主键,另一个表有一个外键引用第一个表,即主键列。那么现在是否可以添加以下代码 create or replace TRIGGER TABLE1_TABLE2 after update of TABLE1_PRIMARY_KEY on TABLE1 当然,在我的脑海中,我会失去约束,继续使用触发器,但这是唯一的方法吗

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

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

    create or replace TRIGGER TABLE1_TABLE2
    after update of TABLE1_PRIMARY_KEY on TABLE1
当然,在我的脑海中,我会失去约束,继续使用触发器,但这是唯一的方法吗

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


我在微软的一个网站上找到了一篇有用的文章,证实了我的观点,即应该删除这些限制。当然,Oracle的解决方案可能不同于任何其他数据库。这篇文章的主题是“使用触发器实现删除级联和更新级联”,之后是“在继续之前,您需要删除现有的外键”。

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