Я установил расширение pgsmtp
для отправки почты из Postgres (версия 9.3), и я хотел создать триггер для отправки почты на основе значений в таблице.
Это таблица, из которойтриггер рисует данные для отправки писем:
CREATE TABLE scadenze_lcl_fibra
(
gid serial NOT NULL,
lcl_numero numeric(10,0) NOT NULL,
mail integer DEFAULT 0,
CONSTRAINT scadenze_lcl_fibra_pkey PRIMARY KEY (gid)
)
WITH (
OIDS=FALSE
);
Это триггер:
CREATE TRIGGER mail_scad_lcl_fibra
AFTER INSERT
ON scadenze_lcl_fibra
FOR EACH ROW
EXECUTE PROCEDURE mail_scad_lcl_fibra();
ALTER TABLE scadenze_lcl_fibra DISABLE TRIGGER mail_scad_lcl_fibra;
А это функция:
CREATE OR REPLACE FUNCTION mail_scad_lcl_fibra()
RETURNS trigger AS
$BODY$
BEGIN
IF new.mail = 0 THEN
perform pgsmtp.pg_smtp_mail('sender@mail.com','receiver@mail.com',array[''], (SELECT 'Number LCL ' || new.lcl_numero FROM scadenze_lcl_fibra LIMIT 1),(SELECT 'Notify LCL ' || new.lcl_numero FROM scadenze_lcl_fibra LIMIT 1));
ELSE NULL;
END IF;
RETURN NEW;
END
$BODY$
Я бы хотел триггер один разкоманда для отправки почты (pgsmtp.pg_smtp_mail) выполняется, изменяет значение в столбце mail
в 1 и выполняет команду для следующей строки.
Как я могу это сделать?