Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Триггеры и все вокруг них....
|
|||
|---|---|---|---|
|
#18+
Хочется создать универсальную триггерную функцию, т.е. вызывать ее от многих таблиц. В параметрах триггера указываю имя таблицы. Делаю так: declare tablename text; begin tablename:=tg_argv[0]; select * tablename.... И вот на селекте не происходит подстановка значения из переменной. Можно ли это победить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 12:12 |
|
||
|
Триггеры и все вокруг них....
|
|||
|---|---|---|---|
|
#18+
может попробовать написать FROM ??? или если это опечатка попробуй передавать запрос как строку а потом его выполнять ... типа EXECUTE ------------------------------- жизнь как пестня ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 14:33 |
|
||
|
Триггеры и все вокруг них....
|
|||
|---|---|---|---|
|
#18+
Не, про from я знаю :) Строка выглядит так: select * into myrec from tablename where ... ну и т.д. Вот меня и интересует, может ли постгрес подставлять значение переменной в select или как можно это обойти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 15:04 |
|
||
|
Триггеры и все вокруг них....
|
|||
|---|---|---|---|
|
#18+
Я ж говорю делай строку запроса и выполняй ее с помощью EXECUTE помоему нельзя так сразу имя таблицы подставить ... хотя не уверен надо в доке глянуть можно имена переменных в параметры подставлять ------------------------------- жизнь как пестня ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 16:23 |
|
||
|
Триггеры и все вокруг них....
|
|||
|---|---|---|---|
|
#18+
имя таблицы в запрос подставит можно только при вызове запроса через EXECUTE это особенность plpgsql .. но при этом на execute не запоминается план в отличии от обычных запросов , поэтому с execute медленнее. если скорость важна советую сделать несколько тригеров с захаркоженными именами таблиц вместо одного тригера с EXECUTE ... разница в скорости отличается в разы. если кому то интересно почему имя таблицы можно только в execute подстовлять... то читайте доки.. Chapter 35. PL/pgSQL - SQL Procedural Language -> Owerview ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 10:34 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=345&tid=2007376]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 328ms |

| 0 / 0 |
