Функция триггера Postgres

Мне нужна помощь в триггерах Postgres.

У меня есть таблица с двумя столбцами:

sold boolean;
id_shop int;

В ней хранится информация о том, продан ли предмет или в каком магазине он находится.

Мне нужен триггер, если я изменю «продано» на true, то он также изменит id_shopна NULL(Он не может быть в магазине, если продан.. .)

Пробовал разными способами, но не работает или выдает ошибку при обновлении cmd...

create or replace function pardota_masina_veikals() RETURNS trigger AS $pardota_masina$
begin
  IF NEW.sold=true THEN
    update masinas
      SET id_shop=null WHERE id=NEW.id;
  END IF;
  RETURN NEW;
END;
$pardota_masina$ LANGUAGE plpgsql;


CREATE TRIGGER pardota_masina_nevar_but_veikala 
    AFTER INSERT OR UPDATE ON masinas FOR EACH ROW EXECUTE PROCEDURE pardota_masina_veikals();
9
задан vyegorov 9 May 2012 в 20:50
поделиться