2012-05-18 7 views
1

Пожалуйста, помогите мне исправить SQL заявление:Postgresql уведомление триггера

CREATE TRIGGER transaction_insert 
    AFTER INSERT ON transaction 
    FOR EACH ROW 
    WHEN (NEW.tr_type = 55) 
    EXECUTE PROCEDURE pg_notify('check_close', to_char(NEW.n_transaction, 999999)); 

мне нужно получить уведомление, когда строка с tr_type=55 добавляется. tr_type является int. n_transaction - int.

Postgresql 8.3.4

Пожалуйста, помогите!

+1

Пожалуйста, обратите внимание, что "tramsaction" является зарезервированным словом. Именование таблицы «транзакция» - плохой выбор. – wildplasser

ответ

2

Попробуйте следующее:

CREATE TRIGGER transaction_insert 
    AFTER INSERT ON transaction 
    FOR EACH ROW EXECUTE PROCEDURE transaction_insert_check_close(); 


CREATE OR REPLACE FUNCTION transaction_insert_check_close() RETURNS TRIGGER AS $transaction_insert_check_close$ 
BEGIN 
    IF (NEW.tr_type = 55) THEN 
     PERFORM pg_notify('check_close', to_char(NEW.n_transaction, 999999)); 
    END IF; 

    RETURN NEW; 
END; 

$transaction_insert_check_close$ LANGUAGE plpgsql; 
Смежные вопросы