gpt4 book ai didi

postgresql - 替换 Postgres 中的 DBA_Source 以查找 DB 对象

转载 作者:行者123 更新时间:2023-11-29 13:13:45 33 4
gpt4 key购买 nike

我怎么知道表 (table_1) 正在使用所有 UDF?

下面的查询给出了表的详细信息:

SELECT * FROM information_schema.tables;

下面的查询给出了 UDF 的详细信息:

select * FROM pg_proc;

但是我怎么知道table1是在哪个UDF中使用的呢?

最佳答案

pg_procprosrc 列中的字符串搜索是您想要查找函数和表之间的依赖关系的唯一方法。

当然,这不是很令人满意,因为很难说——比方说——出现的 table_1 是对表或变量名的引用。此外,您无法在目录中找到 C 函数的源代码。

要获得可靠的答案,您需要了解编写函数所用的语言,这就是问题的核心:PostgreSQL 对语言有任何了解! PostgreSQL 传说中的可扩展性允许您为函数定义新的语言,并且只有语言处理程序 知道如何解释作为函数主体的字符串。这也适用于 PostgreSQL 附带的 PL/pgSQL。

这也是函数中使用的对象没有 pg_depend 条目的原因。

关于postgresql - 替换 Postgres 中的 DBA_Source 以查找 DB 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51627000/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com