|
|
|
DDL trigger: получить имя объекта?
|
|||
|---|---|---|---|
|
#18+
Пытаюсь создать ddl trigger на создание таблицы. Хочется получить имя вновь созданной таблицы, но в документации нет никаких констант передающихся в триггер кроме как tg_event, tg_tag. Как в такой ситуации получить имя созданной таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 18:58:55 |
|
||
|
DDL trigger: получить имя объекта?
|
|||
|---|---|---|---|
|
#18+
sp, в общем случае думаю пока никак но в частном - попробуйте пропарсить возврат current_query() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 20:04:00 |
|
||
|
DDL trigger: получить имя объекта?
|
|||
|---|---|---|---|
|
#18+
йццй, ничего не дает - создание таблицы происходит в триггере... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 20:11:42 |
|
||
|
DDL trigger: получить имя объекта?
|
|||
|---|---|---|---|
|
#18+
spйццй, ничего не дает - создание таблицы происходит в триггере...ну так я так и предполагал но , по феншую, создание таблицы надо изолировать от "долгих транзакций" т.е. вынести в автономию. <многабукв, почему> Т.е. в dblink (от супердба ) а тогда и current_query() начнёт возвращать текст дергаемого (из вашего триггера) в дблинке запрос. что и требуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 20:23:22 |
|
||
|
DDL trigger: получить имя объекта?
|
|||
|---|---|---|---|
|
#18+
йццй, бггг, ещё один частный способ: выглянуть из транзы (если ивент триггер честно работает до коммита ddl) через автономию (можно наверное не через дблинк, а через fdw к information_schema.tables) - посмотреть существующие закоммиченные таблички. сравнить внутри - с существуюшими в контексте триггера. ваша табличка -- одна из тех, которых нет снаружи (если триггер отработал на create) общность нарушается при создании более чем одной таблы в транзакции. (что плохо, плохо, плохо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 20:39:41 |
|
||
|
DDL trigger: получить имя объекта?
|
|||
|---|---|---|---|
|
#18+
йццй, придумал другой костыль - табличка "созданные таблицы" c полем processed = false по-умолчанию в триггере перед созданием таблицы заношу имя таблицы в "созданные таблицы" а в DDL триггере уже изучаю "созданные таблицы" Но это костыль... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 21:00:50 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38560363&tid=1998847]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 445ms |

| 0 / 0 |
