2016-05-13 15 views

答えて

1

トリガーのコードはよく見えます。私は何の問題も見ません。あなたはトリガーを設計するとき、RAISE NOTICEステートメントはあなたの親友です。多くの場合、人為的なエラーです。間違ったテーブルにトリガを設定すると、間違ったテーブルに挿入しようとすることができます。通知が表示されるので、すべて正常です。

postgres=> \sf func_trg 
CREATE OR REPLACE FUNCTION public.func_trg() 
RETURNS trigger 
LANGUAGE plpgsql 
AS $function$ 
BEGIN 
    RAISE NOTICE 'func_trg: %', new; 
    RETURN new; 
END; 
$function$ 

postgres=> CREATE TRIGGER xxx AFTER INSERT ON foo_table 
       FOR EACH ROW EXECUTE PROCEDURE func_trg(); 
CREATE TRIGGER 
postgres=> set client_min_messages to notice; 
SET 
postgres=> INSERT INTO foo_table VALUES(10,20); 
NOTICE: func_trg: (10,20) 
INSERT 0 1