таблице есть поле, хранящее версию записи. т.е. если запись меняется, то значение инкрементируется.
                  
                  
                  3) Есть функция
                  
                  
                  CREATE FUNCTION upd_version()
                  
                  
                      RETURNS trigger
                  
                  
                      LANGUAGE 'plpgsql'
                  
                  
                      COST 100
                  
                  
                      VOLATILE NOT LEAKPROOF
                  
                  
                  AS $BODY$
                  
                  
                  begin
                  
                  
                      NEW.rec_version = COALESCE(OLD.rec_version, 0) + 1;
                  
                  
                      raise notice 'OLD Value: %', OLD.rec_version;
                  
                  
                      raise notice 'NEW Value: %', NEW.rec_version;
                  
                  
                      RETURN NEW;
                  
                  
                  END;
                  
                  
                  $BODY$;
                  
                  
                  4) Есть триггер
                  
                  
                  CREATE TRIGGER upd_version
                  
                  
                      AFTER UPDATE 
                  
                  
                      ON batches
                  
                  
                      FOR EACH ROW
                  
                  
                      EXECUTE PROCEDURE upd_version();
                  
                  
                  5) Ничего не работает :(
                  
                  
                  Что я делаю не так ?
                  
                  
                
Что, совсем ничего не происходит? Даже нотисов не видно? Это странно. А инкреемнтить пост апдейт триггер ничего и не должен: The return value of a row-level trigger fired AFTER or a statement-level trigger fired BEFORE or AFTER is always ignored;
Обсуждают сегодня