Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
Собственно вопрос: можно ли заблокировать триггер, выполнить определенную операцию, а затем опять восстановить триггер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2006, 11:20 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
см. док на тему alter table disable trigger ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2006, 11:55 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
st_sergсм. док на тему alter table disable trigger Походу это появилось с 8-ой версии... я попробую обновлять pg_trigger.tgenabled ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2006, 12:28 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
Попробуй это Это убрать все триггеры UPDATE pg_class SET reltriggers = 0 WHERE relname = 'my_table'; Это восстановить обратно UPDATE pg_class SET reltriggers=(SELECT count(*) FROM pg_trigger WHERE pg_class.oid = tgrelid) WHERE relname = 'my_table'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2006, 13:07 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
HordiПопробуй это Это убрать все триггеры UPDATE pg_class SET reltriggers = 0 WHERE relname = 'my_table'; Это восстановить обратно UPDATE pg_class SET reltriggers=(SELECT count(*) FROM pg_trigger WHERE pg_class.oid = tgrelid) WHERE relname = 'my_table'; Спасибо! На самом деле я имеено так в итоге и сделал :) а pg_trigger.tgenabled не помогло... вобще странный глюк был... в psql и pgAdmin все работало - т.е. тригеер блокировался и разблокировался... а из программы почему-то этого не происходило, хотя все они работают через одну и ту же libpq ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2006, 13:40 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
чего проще - завести табличку статусов и сделать триггер(ы) статусозависимым(и). Если конечно это не разовая задачка. И не надо непродуманного насилия над системой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2006, 14:59 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
4321чего проще - завести табличку статусов и сделать триггер(ы) статусозависимым(и). Если конечно это не разовая задачка. И не надо непродуманного насилия над системой. Это как? Из триггера запрос вызывать по другой таблице? У меня записи сотнями тысяч за раз могут изменяться - медленно получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2006, 15:51 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
Hordi У меня записи сотнями тысяч за раз могут изменяться - медленно получится.кто вам сказал, что для того , чтобы 100 000 раз узнать одну (и ту же величину) надо 100 000 раз ее прочитать с диска? Напишите стей-бл* ф-ю, в канце-канцов - внутри одного прохода она не должна буит перезапрашиваца. Канешна сам расход просто на 100 000 входов даже в тут же выплевывающую процедуру накладен. да. В этом случае отключить триггер имеет смысл. не возражаю. Но не уверен, что аффтырское "выполнить определенную операцию" это именно заливка данных в обход позаписных триггеров (кстати, а как там дело с постейтментными триггерами и INSERTED/DELETED ? не предполагается в дальнейшем?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2006, 16:23 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
>Напишите стей-бл* ф-ю, в канце-канцов - внутри одного прохода она не должна буит перезапрашиваца. Она не будет перевыполняться только в случае когда ей передается один и тот же параметр. Если без параметров, то вероятнее всего подобная функция выполнится только один раз за сессию, а потом будет возвращаться полученное при первом вызове значение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2006, 18:37 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
дык передавать ей в аргуметны timestamp он в пределах транзакции не меняется... соответственно в пределах одной транзакции стабле функция будет выдавать одно и тоже значения и выполнится только один раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 17:35 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
st_sergсм. док на тему alter table disable trigger DISABLE/ENABLE TRIGGER можно ввыполнять внутри другого тригера? в доке ичего не нашёл на эту тему и похоже что не работает, те тригер всё равно исполняеться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 14:53 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
4_Alex st_sergсм. док на тему alter table disable trigger DISABLE/ENABLE TRIGGER можно ввыполнять внутри другого тригера? в доке ичего не нашёл на эту тему и похоже что не работает, те тригер всё равно исполняеться. гм, не знаю не проверял. А вы уверены что стоит так делать? имхо, распутать логику потом будет (очень?) затруднительно... во всяком случае я бы поискал другое решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 15:02 |
|
||
|
Можно ли заблокировать на время триггер?
|
|||
|---|---|---|---|
|
#18+
st_serg 4_Alex st_sergсм. док на тему alter table disable trigger DISABLE/ENABLE TRIGGER можно ввыполнять внутри другого тригера? в доке ичего не нашёл на эту тему и похоже что не работает, те тригер всё равно исполняеться. гм, не знаю не проверял. А вы уверены что стоит так делать? имхо, распутать логику потом будет (очень?) затруднительно... во всяком случае я бы поискал другое решение. именоо если делать всё на проверках условий то получаеться сложнее, а так есть чёткие ситуации когда я уверен что тригер нужно выключить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 15:41 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=278&tid=2004699]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 317ms |

| 0 / 0 |
