2016-08-31 9 views
0

パーティション(子テーブル)を持つテーブルに挿入時にトリガーを持つPostgres 9.4データベースがあります。トリガは、新しいパーティションテーブルに対して定期的に更新する必要のあるプロシージャを呼び出します。私は、トリガプロシージャを更新した後でも、トリガはそのプロシージャの前のバージョンを呼び出すように見えます。なぜなら、挿入が使用可能なパーティションに関して範囲外であれば例外をスローするからです。 Postgresに正しいトリガプロシージャを使用させるにはどうしたらいいですか?postgresがトリガ機能を更新しましたが、効果がありません

敬具、 甲斐

+0

どのように正しいものを選択しようとしますか?コードなしでは、あなたを助けるのは難しいです。 –

+0

親テーブルの 'BEFORE INSERT ON'トリガで呼び出されたトリガプロシージャ名で 'CREATE OR REPLACE FUNCTION'を実行しました。関数の内容はレコードの作成日をチェックし、それをパーティションの1つにソートします。次の日付範囲で新しいパーティションが追加されましたが、トリガープロシージャが '\ df +'コールで期待通りに表示されていても、トリガー呼び出しは範囲外のままであると文句を言います – Kai

+0

関数を置き換えるとすぐに使用します。 (1)トリガーを変更した場所でトランザクションをコミットした、(2)正しいデータベースとスキーマを探しています。(3)異なる機能を(類似した名前でも)探していませんか? – MatheusOl

答えて

0

質問は無効です。問題は、呼び出されていない/更新されていないプロシージャではなく、ちょうど愚かなタイムゾーンの問題でした。

関連する問題