次のようなテーブルがあります。
CREATE TABLE aggregated_master (
  "user"       BIGINT,
  type         TEXT,
  date         TIMESTAMP,
  operations   BIGINT,
  amount       NUMERIC,
  PRIMARY KEY ( "user", type, date )
);
このテーブルは、多くのパーティションが継承するマスターです。パーティションは、DATEフィールドのMONTHによって行われます。たとえば、Aug-2017のパーティションはagg_201708で、そのPKはpk_agg_201708になります。挿入を適切なパーティションにリダイレクトする通常のトリガーBEFORE INSERTがあります。
事は私がこのテーブルにUPSERTをしたいということです。DO CONFLICT部分が機能していません。
最初のコードはこのようなものでした
INSERT INTO aggregated_master (user, type, date, oeprations, amount)
SELECT user, type, date, SUM(ops), SUM(amt)
FROM ...
WHERE ...
GROUP BY USER, TYPE, DATE
ON CONFLICT ON CONSTRAINT pk_aggregated
DO UPDATE SET operations = EXCLUDED.operations
          ,   amount = EXCLUDED.amount
しかしその後、制約(pk_aggregated)がマスターテーブルの制約であり、トリガーが原因で実際に挿入が実行される子テーブルの制約ではないことに気付きました。
CONFLICT句を次のように変更しました。
ON CONFLICT (user, type, date)これはPKのフィールドですが、これも機能しません。
これを機能させる方法はありますか?