Dan*_*ski 3 postgresql pgadmin
当我使用pgAdmin III(1.22.2)连接到PostgreSQL数据库时,出现此错误:
ERROR: function array_agg(text) is not unique
LINE 5: (SELECT array_agg(label) FROM pg_shseclabel sl1 WHERE sl1.ob...
^
HINT: Could not choose a best candidate function. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)
数据库服务器是PostgreSQL 9.6。
pgAdmin的相同实例可以与运行PostgreSQL 9.0版本的数据库一起正常工作。
我该如何解决这个问题?
我发现问题是由9.0到9.6的迁移引起的。
使用psql登录数据库并运行\df array_agg。这是在9.0中的外观:
db=# \df array_agg
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+-----------+------------------+---------------------+------
pg_catalog | array_agg | anyarray | anyelement | agg
(1 row)
Run Code Online (Sandbox Code Playgroud)
在9.6中:
db=# \df array_agg
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+-----------+------------------+---------------------+------
pg_catalog | array_agg | anyarray | anyarray | agg
pg_catalog | array_agg | anyarray | anynonarray | agg
(2 rows)
Run Code Online (Sandbox Code Playgroud)
但是,当我\df array_agg在服务器上运行时,我得到:
db=> \df array_agg
Lista funkcji
Schemat | Nazwa | Typ danych wyniku | Typy danych argumentów | Typ
------------+-----------+-------------------+------------------------+-------
pg_catalog | array_agg | anyarray | anyarray | agreg
pg_catalog | array_agg | anyarray | anynonarray | agreg
public | array_agg | anyarray | anyelement | agreg
(3 rows)
Run Code Online (Sandbox Code Playgroud)
如前所述在这里,它可以通过固定的:
DROP AGGREGATE public.array_agg(anyelement);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1515 次 |
| 最近记录: |