我有一个函数,添加了一些更改后,我开始得到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();
答案 0 :(得分:0)
这可能是因为该函数遇到错误而没有运行断开连接。
然后已经使用'pragma'了,当您再次运行该函数时,就会出现此错误。
尝试:
SELECT dblink_disconnect('pragma');
然后再次运行您的函数。