Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как использовать динамические имена колонок
|
|||
|---|---|---|---|
|
#18+
Вопрос по сабжу. Есть триггер, ведущий лог удаленных записей: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Лог - в отдельной таблице: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Для каждой операции удаления берется имя таблицы (из TG_RELNAME), ее первичный ключ (имена колонок "на лету" вынимаются из pg_catalog функцией rep_pkeys(name)) и нужно еще взять значение ключа. Так вот взять его из NEW никак не получается. Ни селектом, ни как в коде приведено. Ошибку бросает. Как бороться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 14:05 |
|
||
|
Как использовать динамические имена колонок
|
|||
|---|---|---|---|
|
#18+
Oleg ZhovtanyukТак вот взять его из NEW никак не получается. Ни селектом, ни как в коде приведено. Ошибку бросает. Как бороться?как правило вам в plpgsql такое невозможно, рекомендуют другие языки - http://sql.ru/forum/actualsearch.aspx?search=NEW+EXECUTE&sin=0&a=&ma=0&bid=7&dt=-1&s=1&so=1 но вот я нарвался на старое решение-прокладку (вставка строки NEW/OLD в темповую таблу, котораю потом пихается в EXECUTE) - посмотрите. вдруг - работает? чем черт не шутит. http://sql.ru/forum/actualthread.aspx?tid=253810&pg=1&hl=new+execute+%e8%ec%ff хотя это и извращение, имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 14:36 |
|
||
|
Как использовать динамические имена колонок
|
|||
|---|---|---|---|
|
#18+
assa но вот я нарвался на старое решение-прокладку (вставка строки NEW/OLD в темповую таблу, котораю потом пихается в EXECUTE) - посмотрите. вдруг - работает? чем черт не шутит. http://sql.ru/forum/actualthread.aspx?tid=253810&pg=1&hl=new+execute+%e8%ec%ff? хотя это и извращение, имхо.кстати освежил - сработало. Токмо ommited FROM в 8.1. пришлось подправить.: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 15:06 |
|
||
|
Как использовать динамические имена колонок
|
|||
|---|---|---|---|
|
#18+
Совсем недавно было решение на pl/Perl. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 15:47 |
|
||
|
Как использовать динамические имена колонок
|
|||
|---|---|---|---|
|
#18+
Serik AkhmetovСовсем недавно было решение на pl/Perl.дык я потому и в поиск полез. (в разрезе - припоминая о). И ба! - наткнулся на возможность таки передать нью-олд в Execute в plpgsql, о которой уже и подзабыл (намедни, читая искомое, пытался воспроизвести - не получилось, а тут само нашлось). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 18:30 |
|
||
|
Как использовать динамические имена колонок
|
|||
|---|---|---|---|
|
#18+
assa assa но вот я нарвался на старое решение-прокладку (вставка строки NEW/OLD в темповую таблу, котораю потом пихается в EXECUTE) - посмотрите. вдруг - работает? чем черт не шутит. http://sql.ru/forum/actualthread.aspx?tid=253810&pg=1&hl=new+execute+%e8%ec%ff? хотя это и извращение, имхо.кстати освежил - сработало. Токмо ommited FROM в 8.1. пришлось подправить.: Код: plaintext Проверил, в 8.1 работает. А в 8.2 не компилит, ругается на конструкцию SELECT OLD.* INTO ;-| Никто не в курсе, что нужно в 8.2 подправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 06:46 |
|
||
|
Как использовать динамические имена колонок
|
|||
|---|---|---|---|
|
#18+
Спасибо за помощь всем отозвавшимся. Решение, предложенное assa, и у меня сработало. На всякий случай (вдруг кто еще в поиск за этим полезет) привожу рабочий код триггера. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Но. Производительность DELETE-а при этом упала "ниже плинтуса", так что пришлось переделывать алгоритм: оставил в логе удаленных записей только имя таблицы и timestamp, - так полегчало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 10:01 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=295&tid=2005388]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 388ms |

| 0 / 0 |
