postgresql - 如何使用custom_variable_class

标签 postgresql triggers postgresql-9.1

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

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。我做错了什么吗?

最佳答案

你的问题是一个非常微妙的问题:

根据文档而不是:

 custom_variable_class= myapp

你应该有

custom_variable_classes='myapp'

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

从那里,根据上面的评论,这应该可行。

关于postgresql - 如何使用custom_variable_class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15761961/

相关文章:

postgresql - 在 slick 中插入默认值

PostgreSQL:如何让 ADD UNIQUE 工作

sql - 当插入事件发生时,我可以将列值更新到触发器中吗?

sql - 分组依据和内连接 : how to select joined without a "max" trick

jquery - 如何在 jQuery 中触发 drop?

sql - 如何发现触发器的父模式?

postgresql - 在没有 Postgis 功能的情况下转储或恢复 Postgresql 数据库

postgresql - 属性编号 10 超过列数 0

ruby-on-rails - 在 Terminal Rails 4 Postgresql 中将用户添加到用户表

database - 在数据库中存储大量数据