gpt4 book ai didi

postgresql - 如何确定哪些存储过程在其查询中使用某个表?

转载 作者:行者123 更新时间:2023-11-29 12:47:17 53 4
gpt4 key购买 nike

我正在为一个 postgres 数据库做一些维护工作,一个特定的表有两个状态列,我想将它们转换成一个位掩码列。这个数据库使用了许多不同的存储过程来进行数据操作,遗憾的是单元测试没有涵盖这些存储过程。

有没有办法判断这个表是否被任何存储过程在查询中使用?好吧,除了使用 psql 中的 \df+ 开关手动遍历每个过程的主体。

最佳答案

遗憾的是,没有。 plpgsql 函数的主体只是一个在调用时保存和执行的字符串。当您创建一个函数时,只会对其运行表面语法检查。

有时这是一种祝福。其他时候,这是一个诅咒。

在这种情况下我会做什么:转储模式并使用 vim(或 grep 或您选择的工具)搜索转储。

pg_dump $DB -p $PORT -s -f filename.pgsql

如果你所有的函数都驻留在一个特定的模式中(同一个词,不同的意思!),添加:-n $SCHEMA

关于postgresql - 如何确定哪些存储过程在其查询中使用某个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13415404/

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