Вот тестовая таблица
CREATE TABLE test20120524
(
id integer NOT NULL,
bool boolean,
comment_by_trigger text,
CONSTRAINT pk_test20120524 PRIMARY KEY (id)
)
WITH (
OIDS=TRUE
);
Это функция запуска образца. OLD
и NEW
являются предварительно объявленными переменными, что означает обновленную строку.
create or replace function test1() returns opaque as
'
declare
-- some variables
begin
if OLD.bool = false and NEW.bool = true then
NEW.comment_by_trigger = ''affected by trigger'';
end if;
return NEW;
end;
' language 'plpgsql';
Затем создайте триггер.
CREATE TRIGGER test2
BEFORE UPDATE
ON test20120524
FOR EACH ROW
EXECUTE PROCEDURE test1();
Сохраненные процедуры не так сложны. Вы можете узнать его легко в PostgreSQL официальных документах: http://www.postgresql.org/docs/9.1/interactive/index.html
см
- 36 .. Триггеры
- 39 .. PL/PgSQL - SQL процедурный язык (особенно 39,9 триггерные процедуры)
Огромное вам спасибо, это одна из тех вещей, где приходит ночь ночью, и вы хотите, чтобы это было сделано на следующий день утром, и не так много времени, чтобы рыться. Большое спасибо – user373201