我目前在 postgres 数据库上遇到问题。数据库服务器是我们正在使用的软件的数据仓库。对于软件系统中的每个租户,postgres 服务器上都有一个数据库。该软件定期导出数据。好的。
对于某些分析,每个数据库中的表上定义了一些视图(因此对于我们拥有的每个租户)。有一种视图定义如下:
SELECT table.id,
...
mul(table.modifier) as "mod",
...
FROM table
GROUP BY id
我将这个定义缩小到最有趣的部分。该定义适用于所有当前租户。我正在使用新的数据库创建一个新数据库。如果我想保存定义,pgAdmin 会一直说:'错误:函数 mul(双精度) 颂歌不存在 行:x mul(...) 提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换'。
好的。我搜索了旧数据库,检查是否有函数、符号或所谓的 mul 之类的东西。我没有发现任何东西。有人可以帮忙吗?
您的旧数据库中必须定义一个自定义聚合函数
mul
。使用psql
客户端,您可以找到聚合pg_dump
要获取聚合(及其依赖函数)的定义,您可以使用旧数据库的仅模式。定义就在那里。