2016-05-13 82 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