[英]How to enable trigger over all tables that has foreign key reference to another table in oracle 11g?
在数据库中,我有一个基本表,名为Organization
,大多数表对此都有外键。 在ERD下面假设:
如您所见, Organization
表有一个名为is_enabled
的列。 现在,如果我想禁用Organization
,则应将is_enabled
设置为1
。 这很简单,但是问题是,如果我想防止所有其他过程和函数使用禁用的Organization
,则应该在所有具有对Organization
表的外键引用的表上定义trigger
,这种方式是不好的。
还有另一种方法可以防止所有对象使用禁用的Organization
吗? 还用于插入或更新数据,例如,如果我有一个Organization
为org1的Organization
,并且如果它的Department
具有dep1的名称,则在禁用org1之后 ,我将无法更新dep1的名称,并且对于所有参考Organization
。
如果要阻止用户更改禁用组织的数据,则应在代码中- 存储过程或应用程序代码中 。 您可能在用户界面中有一些逻辑或限制,以防止更改禁用的组织(实际实现取决于您的要求)。
我在评论中还有另一个问题(正如鲍勃·贾维斯(Bob Jarvis)提到的),为什么您有800个带有组织ID的表? 这似乎没有被规范化。
例如,为什么一个人直接链接到组织表? 他们可以链接到部门表吗?该部门表与组织有自己的链接?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.