PostgreSQL错误:连接名称重复

时间:2018-09-10 16:50:52

标签: postgresql dblink

我有一个函数,添加了一些更改后,我开始得到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列表

1 个答案:

答案 0 :(得分:0)

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

然后已经使用'pragma'了,当您再次运行该函数时,就会出现此错误。

尝试:

SELECT dblink_disconnect('pragma');

然后再次运行您的函数。