Postgres:更新前触发器

Postgres: BEFORE UPDATE trigger

描述

在我们的环境 (Postgres 9.3) 中,我们对日期使用了广泛的分区。此外,我们使用重定向将 'main' table 中的 INSERT 重定向到相应的子 table (因此请注意,主要 table 中实际上没有数据],所有数据都在子 tables.

问题

其中一个进程正在主进程 table 上执行 UPDATE,但我如何才能将其中一个 UPDATE 重定向到正确的子进程 table?

例如,如果我说一些简单的话:

UPDATE transactions SET text = 'new text' WHERE id = 1 AND date = 201601;

我将此 UPDATE 重定向到 transactions_201601 分区?

显然,将您的 UPDATE 查询重定向到正确的 table 并不常见。

通过确保 INDEXes 以正确的方式设置,您可以确保 UPDATE 在正确的分区 table 上执行。所以总而言之,设置正确的索引就是解决方案。