PLSQL:触发器以维护数据库完整性?

时间:2018-01-11 21:34:31

标签: database oracle plsql triggers constraints

所以我已经读过,触发器可以用于Supplement声明性约束以保持数据库的完整性。但我不知道它是如何做到的。我已经尝试过搞清楚了但是失败了。能告诉我一个例子吗?谢谢!

2 个答案:

答案 0 :(得分:3)

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

通常,即使您禁用了再次启用它的约束,也会验证表中的所有数据。当然,有一个关键字可以阻止这种情况,但此时您有意避免实施约束。

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

答案 1 :(得分:2)

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

您是否在Oracle文档中阅读了Triggers? (是的,你提到你读过某些东西,但没有指定是什么。)它不长,提及"完整性&# 34;很多次,所以 - 看看。