2012-05-24 4 views
-1

Я ничего не знаю о хранимых процедурах. Но отчаянно нужен один для запуска sql update, когда булевский столбец в таблице меняет значение с false на true. Если кто-то сможет его предоставить, он будет очень благодарен.триггер postgres для обновления другой таблицы на основе значения столбца

Заранее спасибо

ответ

1

Вот тестовая таблица

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 триггерные процедуры)
+0

Огромное вам спасибо, это одна из тех вещей, где приходит ночь ночью, и вы хотите, чтобы это было сделано на следующий день утром, и не так много времени, чтобы рыться. Большое спасибо – user373201

Смежные вопросы