如何在Postgresql中强制删除操作符?

时间:2012-04-26 16:05:13

标签: postgresql

我的数据库有从整数到文本的隐式转换,所以我得到一些'运算符不是唯一'的问题。我正在尝试删除运算符|| (text,anynonarray)没有成功,错误信息是

  

错误:无法删除运算符||(text,anynonarray),因为它是数据库系统所必需的   SQL状态:2BP01

我有另一个没有这个操作符的数据库,所以我认为有可能。我不能在数百个查询中添加显式强制转换,也不能删除隐式强制转换。有一种方法可以强制操作这个操作员吗?

1 个答案:

答案 0 :(得分:0)

似乎我明白了。诀窍是从pg_operator表中删除右键。

delete from pg_operator where oprname = '||' and (oprleft = 25 or oprleft = 2776 ) and oprleft != oprright

因为我想删除这些运算符:

  

OPERATOR ||(“text”,anynonarray);

     

OPERATOR ||(anynonarray,“text”);

我不知道是否有任何影响,到现在为止似乎还不错。