如何使用custom_variable_class

时间:2013-04-02 10:37:21

标签: postgresql triggers postgresql-9.1

我在custom_variable_class= myapp中创建postgresql.conf。并将值设置在函数内部,如

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

set myapp.user_no=xuserno
..........
..........

END;

现在我在触发器中使用myapp.user

CREATE OR REPLACE FUNCTION public.delete_history()
  RETURNS trigger AS

$BODY$
    DECLARE userno text;
    BEGIN

    SELECT current_setting('myapp.user_no') into userno;
END;
$BODY$

如果设置usernointeger,则会显示错误消息。

invalid input syntax for integer: "xuserno". 

和  SELECT current_setting('myapp.user_no')显示xuserno而非xuserno value。这意味着xuserno=5显示xuserno而非5。我做错了什么?

1 个答案:

答案 0 :(得分:1)

你的问题非常微妙:

根据文档而不是:

 custom_variable_class= myapp

你应该

custom_variable_classes='myapp'

请注意,custom_variable_classes旨在用于为多个插件设置多个类。

从那里开始,根据上面的评论,这应该有效。