1

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

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

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

4

1 回答 1

0

看来我明白了。诀窍是直接从 pg_operator 表中删除。

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

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

运算符 ||("文本", anynonarray);

运算符 ||(anynonarray, "text");

我不知道是否有任何影响,但到目前为止似乎还可以。

于 2012-04-26T20:43:20.100 回答