【问题标题】:How to find dependent procedures on a table in PostgreSQL如何在 PostgreSQL 中查找表上的依赖过程
【发布时间】:2012-10-12 07:19:05
【问题描述】:

如何在 PostgreSQL 中找到表的依赖过程?

我使用的 PostgreSQL 版本是 8.1。

【问题讨论】:

  • 请澄清这个矛盾的问题。 8.1 还是 8.4?依赖如何?
  • 假设我在过程 get_emp_name 和许多其他过程中引用表 emp。现在我想改变一个emp表的结构。但我不确定更改 emp 表会影响哪些所有过程/功能。有什么方法可以让我知道引用表 emp 的所有过程。在oracle的情况下,有一个字典表all_dependency,不知道如何检查这些是postgresql
  • 我删除了自相矛盾的问题标签。

标签: postgresql stored-procedures database-schema


【解决方案1】:

系统目录中的许多对象(例如视图、类型或外键约束)存在直接依赖关系。但是 plpgsql 函数的主体只是一个在调用函数时执行的字符串(加上更多的魔法)。我引用the manual on CREATE FUNCTION

定义函数的字符串常量;含义取决于 语。它可以是内部函数名,对象的路径 文件、SQL 命令或过程语言中的文本。

您可以创建数据库的仅模式备份,并使用您选择的编辑器或工具搜索转储。与grepvim 一样。

例如,转储数据库的架构:

pg_dump $DB -p $PORT -s -f /path/to/output/db_schema.pgsql

-s 用于--schema-onlyMore about pg_dump in the manual.

【讨论】:

  • 嘿,谢谢欧文……这对我来说真的很用心。
猜你喜欢
  • 2011-11-30
  • 1970-01-01
  • 2011-10-15
  • 2012-01-01
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 2017-01-07
  • 2014-12-16
相关资源
最近更新 更多