【问题标题】:PostgreSQL ERROR: duplicate connection namePostgreSQL 错误:重复的连接名称
【发布时间】:2018-09-10 16:50:52
【问题描述】:

我有一个函数,添加了一些更改后,我开始得到ERROR: duplicate connection name 函数删除并创建新的

这是我的功能

create extension dblink;
create or replace function Log_Save (Moderator integer, Subject varchar(32), ID_Subject integer, LogAction varchar(64), LogText varchar(4000)) 
returns void as $$
begin
    perform dblink_connect('pragma','dbname=myDbName');
    perform dblink_exec('pragma','insert into "Log" ("Moderator", "Subject", "ID_Subject", "Text", "Action", "LogDate") values (' || 
                        Moderator || 
                        ', ''' || Subject || ''',' || 
                        ID_Subject || 
                        ',''' || LogText || ''', ''' || 
                        LogAction || ''', ''' || now() || ''');');
    perform dblink_exec('pragma','commit;');
    perform dblink_disconnect('pragma');
end; $$ 
language plpgsql;

我在运行时发现错误

select Log_Save(1, 'User', 1, 'Update', 'Name: Name1 > Name2')

如何解决?

更新 我将名称从 pragma 更改为另一个名称,它继续工作。但为什么会发生我不知道。我不需要另一个我想使用旧的 db_link。我通过SELECT dblink_get_connections();得到的db_link_connections列表

【问题讨论】:

    标签: postgresql dblink


    【解决方案1】:

    这可能是因为函数遇到错误而没有运行断开连接。

    然后由于已经使用了“pragma”,当您再次运行该函数时,您会遇到此错误。

    试试:

    SELECT dblink_disconnect('pragma');
    

    然后再次运行你的函数。

    【讨论】:

    • 这样? SELECT dblink_disconnect('pragma') from dual;
    • 是的,如果 pgrama 是您用来声明连接的字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多