我使用pgAdmin4 for PostgreSQL数据库。有一个数据库有大量的过程和函数。我想改变其中一个函数,我如何才能看到这个函数在哪里使用?
的数据
zbwhf8kr1#
您无法在pgAdmin4中找到该信息,并且您根本无法在PostgreSQL中找到它。首先,可以从客户端代码调用该过程,而客户端代码不在数据库内部。但是,要确定数据库中其他函数和过程的过程调用也不容易。函数和过程体存储为字符串,PostgreSQL无法跟踪依赖关系。
SELECT oid::regprocedure FROM pg_proc WHERE prosrc ~* 'call\s+myproc`;
字符串但这也将匹配CALL myproc_not_really(42);,并将错过EXECUTE format('CALL %s(42)', 'myproc()'::regprocedure);。
CALL myproc_not_really(42);
EXECUTE format('CALL %s(42)', 'myproc()'::regprocedure);
1条答案
按热度按时间zbwhf8kr1#
您无法在pgAdmin4中找到该信息,并且您根本无法在PostgreSQL中找到它。
首先,可以从客户端代码调用该过程,而客户端代码不在数据库内部。
但是,要确定数据库中其他函数和过程的过程调用也不容易。函数和过程体存储为字符串,PostgreSQL无法跟踪依赖关系。
字符串
但这也将匹配
CALL myproc_not_really(42);
,并将错过EXECUTE format('CALL %s(42)', 'myproc()'::regprocedure);
。