Advertisement
tyomasun

Untitled

Aug 1st, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.29 KB | None | 0 0
  1. DO $$
  2. BEGIN
  3.    LOOP
  4.      
  5.       BEGIN
  6.          -- Проверка на наличие работы autovacuum на таблице и его прерывание
  7.          PERFORM pg_terminate_backend(procpid)
  8.          FROM pg_stat_activity
  9.          WHERE query_name LIKE 'autovacuum%{schema}.Событие%';
  10.          
  11.          -- Пробуем получить эксклюзивный доступ
  12.          LOCK TABLE {schema}."Событие" IN ACCESS EXCLUSIVE MODE NOWAIT;
  13.          
  14.          -- Удаляем триггер
  15.          DROP TRIGGER {schema}."0100_КонтрагентКонтактСобытие_a";
  16.          
  17.          -- Создаем условный триггер
  18.          CREATE TRIGGER "0100_КонтрагентКонтактСобытие_a"
  19.             AFTER INSERT OR UPDATE
  20.             ON {schema}."Событие"
  21.             FOR EACH ROW
  22.             WHEN (NEW."Тип" = 3)
  23.             EXECUTE PROCEDURE {schema}."КонтрагентКонтактСобытие"();
  24.            
  25.          COMMENT ON TRIGGER "0100_КонтрагентКонтактСобытие_a" ON {schema}."Событие" IS 'sbis3_object';
  26.          
  27.       EXCEPTION WHEN LOCK_NOT_AVAILABLE THEN
  28.          CONTINUE;
  29.       END;
  30.      
  31.       EXIT;
  32.      
  33.    END LOOP;
  34. END; $$;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement