【问题标题】:PLSQL: Trigger to maintain database integrity?PLSQL:维护数据库完整性的触发器?
【发布时间】:2018-06-21 07:40:34
【问题描述】:

所以我读到触发器可用于补充声明性约束以维护数据库完整性。但我不知道它是如何做到这一点的。我已经尝试过很多次但失败了。你能给我举个例子吗?谢谢!

【问题讨论】:

    标签: database oracle plsql triggers constraints


    【解决方案1】:

    触发器不提供数据完整性保证,因为它们仅在触发时执行。如果要在表存在或禁用一段时间后创建触发器,则不会检查在创建触发器之前或禁用时输入的数据。

    一般来说,即使您禁用约束再次启用它也会验证表中的所有数据。当然有一个关键字可以防止这种情况发生,但此时你故意避免实现你的约束。

    实际上,触发器是执行代码。约束强制执行数据完整性。触发器当然可以补充约束,但它不能替代触发器,也不能为您提供长期保证。

    【讨论】:

      【解决方案2】:

      Oracle 建议您应该尽可能使用 CONSTRAINTS 来维护数据库的完整性。但是,有些情况是约束无法涵盖的,因此您需要使用触发器。这些“情况”通常是复杂的规则,需要编写更多代码。

      您是否阅读过 Oracle 文档中的 Triggers? (是的,您提到您阅读了 something,但没有具体说明 what。)它并没有那么长,并且多次提到“完整性”,所以 -看看吧。

      【讨论】:

        猜你喜欢
        • 2017-01-07
        • 1970-01-01
        • 1970-01-01
        • 2011-06-15
        • 2010-09-24
        • 2021-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多