【发布时间】:2021-12-13 21:49:31
【问题描述】:
假设我有两个表,表 A 和表 B,它们有一对多的关系。
表 A
col1 | Col2
表 B
Col1 | Col3
现在我想在表 A 中有一个 Col4,这样如果 Col3 的任何行对于给定的 Col1 值都为真,那么我希望表 A 中的 Col4 设置为真,否则为假。
表 B 上发生的所有更新都应始终更新表 A 中的 Col4 值。
这是否可以通过使用任何 oracle/PL-SQL 功能来实现?
【问题讨论】:
-
有可能吗?当然。但是,采用不同的方法会为您提供更好的服务。要么在视图中进行计算,要么创建与 A 1:1 的物化视图,并在提交时刷新以在 B 中发生更改时进行计算。如果您需要持久化该计算,Oracle 构建的可能性更大-in MV 刷新逻辑会比一堆手动编码的触发器造成更少的问题。
-
我完全同意@JustinCave。物化视图将比使用一组手动编码触发器好得多。更好、更快、更清洁
标签: sql oracle plsql triggers derived-column