我已经使用 PostgreSQL 很多年了,除此之外,我还添加了一些我自己的用户定义标量函数。
当然,如果我当时知道的话,我应该把自己的功能添加到一个单独的模式中,以便更好地管理。相反,我的功能都与标准功能混合在一起。
有没有办法区分标准功能,以便我更好地组织自己的功能?
我已经使用 PostgreSQL 很多年了,除此之外,我还添加了一些我自己的用户定义标量函数。
当然,如果我当时知道的话,我应该把自己的功能添加到一个单独的模式中,以便更好地管理。相反,我的功能都与标准功能混合在一起。
有没有办法区分标准功能,以便我更好地组织自己的功能?
是的; 查看包含它们的架构。如果是
pg_catalog
,那是一个系统函数。如果不是,则它是用户定义的函数。灰色区域是属于扩展的功能。您只能通过他们在扩展中的成员资格来识别他们。一种简单的方法是运行一个
pg_dump -s
:属于扩展的函数将不包含在其中。或者,这里有一个查询将列出所有不属于 PostgreSQL 系统或扩展的函数:
最佳实践是为您自己创建的数据库对象定义一个模式。然后在架构中创建所有扩展
public
,以便它们的功能在那里结束。不要忘记模式的特权REVOKE
(如果您使用的是 v14 或更低版本)。CREATE
public