Advertisement
Guest User

Untitled

a guest
Mar 4th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. /*
  2. Для блокировки должны присутствовать записи:
  3. Контрагент c @Лицо = 21515574
  4. Контрагент c @Лицо = 14517239
  5. Событие c @Событие= 133051552
  6. */
  7. --подготовка к блокировке. выполнить до DO блока.
  8. delete from "КонтрагентКонтакт" where "Регламент" = 124 and "Контрагент" = 21515574;
  9. update "Событие" set "Контрагент" = 14517239 where "@Событие" = 133051552;
  10.  
  11. --блокировка
  12. set search_path to _00000003, public;
  13. DO $$
  14. BEGIN
  15. --с таким UPDATE блокировка.
  16. update "Контрагент" set "Раздел@" = false where "@Лицо" = 14517239;
  17.  
  18. --с таким UPDATE блокировки нет.
  19. --update "Лид" set "Подразделение" = null where "@Документ" = -1;
  20.  
  21. -- в блоке dblink выполняется наш предобработчик. укороченная версия.
  22. PERFORM dblink_connect('crm', 'dbname=inside.tensor.ru port=5432 host=rc-inside-db1.unix.tensor.ru user=postgres password=postgres');
  23. PERFORM dblink('crm', '
  24. set search_path to _00000003, public;
  25.  
  26. --вставили запись в закрепления
  27. insert into "КонтрагентКонтакт"
  28. ("Контрагент", "Регламент") VALUES (21515574, 124);
  29.  
  30. --триггер на таблице пытается обновить запись, которую только что вставили
  31. update "Событие" set "Контрагент" = 21515574
  32. where "@Событие" = 133051552;
  33. ');
  34.  
  35. PERFORM dblink_disconnect('crm');
  36. END $$;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement