【发布时间】:2017-01-26 16:15:42
【问题描述】:
我有针对每一行触发的功能。它有下一条语句:
SELECT DocDate
FROM Operation
WHERE Operation.ID = New.OperationID
INTO _DocDate;
EXECUTE PROCEDURE ChangeSaldo( _DocDate, ... );
每一行都属于父表Operation,我们从中获取DocDate。
我们需要为每一行运行ChangeSaldo,并使用自己的_DocDate
这保证所有行都属于Operation表中的同一行
Postgres 会为每一行执行这个SELECT,还是这个语句会被缓存?
如果不缓存有没有办法优化SELECT所以只会执行一次?
【问题讨论】:
-
您是否要针对您的
DocDate中的每个DocDate值运行函数select?.. 请改写 -
@VaoTsun 完成。改写
-
如果您认为重复运行该 SELECT 是一种浪费,那么有理由说,也许该逻辑一开始就不应该在触发器中。
标签: postgresql stored-procedures