代码之家  ›  专栏  ›  技术社区  ›  Pooja

Postgres中DBA_源的替换以查找DB对象

  •  1
  • Pooja  · 技术社区  · 6 年前

    如何知道表(表1)正在使用哪些自定义项?

    下面的查询提供了表的详细信息:

    SELECT * FROM information_schema.tables;
    

    以下查询提供自定义项详细信息:

    select * FROM pg_proc;
    

    但我怎么知道表1是用来表示所有自定义项的?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Laurenz Albe    6 年前

    字符串搜索 prosrc pg_proc 只有这样才能找到函数和表之间的依赖关系。

    当然,这不是很令人满意,因为很难说是否发生了 table_1 是对表或变量名的引用。此外,在目录中找不到C函数的源。

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

    这也是为什么没有 pg_depend 函数中使用的对象的项。