2017-03-28 7 views
0

以下のトリガ定義で何が問題になっていますか?私は、私はあなたがそれぞれの更新日を更新すると仮定し構文トリガと列の作成エラー -

CREATE TRIGGER tr_calculate_dow 
    AFTER UPDATE OR INSERT OF date ON focusblu.events 
    FOR EACH ROW 
    EXECUTE PROCEDURE calculate_dow(date); 

Failed to execute SQL : SQL CREATE TRIGGER tr_calculate_dow AFTER UPDATE OR INSERT OF date ON focusblu.events FOR EACH ROW EXECUTE PROCEDURE calculate_dow(date); failed : ERROR: syntax error at or near "OF" LINE 1: ...IGGER tr_calculate_dow AFTER UPDATE OR INSERT OF date ON... ^

答えて

0

エラーには、構文エラーがあります。OFは使用できません。

ドキュメントは、あなたがしたい正確に何でかなり明確であり、さらに基準「日付列が更新されるたび、」あなたをもとに例があります。

https://www.postgresql.org/docs/9.1/static/sql-createtrigger.html

おそらく、あなたはこのような何かをしたかったですの?

他のINSERTトリガーでも同じことを行い、日付を選択したいと思うでしょう。

0

...「日付」列が更新または挿入されたが、それは次のエラーが発生するたびに、それは「calculate_dow」機能を実行しようとしますdateフィールドを指定する必要はありません。

CREATE TRIGGER tr_calculate_dow 
    AFTER UPDATE OR INSERT ON focusblu.events 
    FOR EACH ROW 
    EXECUTE PROCEDURE calculate_dow(date); 
+0

正確ではありません。 "日付"列が挿入または更新されるたびに "calculate_dow"関数を使用して別の列を更新したいとします。 –

+0

しかし、 'OF日付'条件を削除するとエラーが解消され、トリガーが機能するようになりました。私はこれは私の目的のためにはOKだと思いますが、なぜ私は 'date'が更新または挿入されたときにのみ実行するトリガーを定義できないのか分かりません。 –

関連する問題