2013-04-02 3 views
2

Я создаю триггер для таблицы журналов. В этом триггере я хочу хранить xuserno для регистрации таблицы. xuserno является аргументом всех функцийСоздать глобальную переменную в Postgresql

Например:

CREATE OR REPLACE FUNCTION fn_consume(xmode text, xuserno integer) 
    RETURNS text AS 
.... 
..... 
..... 

END; 

Each table имеют этот тип function. Итак, как я могу получить доступ к xuserno в моем trigger. Как я могу создать global variable для этой цели? или любое другое решение?

+0

Подобно http://stackoverflow.com/q/13172524/398670 –

ответ

1

Для этой цели можно использовать транзакционные локальные пользовательские GUC, но это, как правило, отличная идея.

В большинстве случаев предпочтительно использовать временную таблицу ON COMMIT DROP с одной строкой, содержащей интересующую стоимость.

См:

+0

Если я использую, как это 'набор myapp.user_name = xuserno '; 'xuserno - аргумент функции. Используя это для получения значения 'SELECT current_setting ('myapp.user_name')', но он показывает 'xuserno' не значение' xuserno' почему? Я ничего не делаю – Sathish

+0

@SATSON Из информации, которую вы указали, я не мог сказать. Отправьте новый вопрос с полным кодом процедуры в полной, исполняемой форме вместе с версией PostgreSQL и т. Д. –