我们正在将字符(备注)类型从字符(9)更改为 varchar(50)。我们有数千个表,函数,过程和mviews。我想识别使用此列的所有位置,即(表,函数,过程,索引,mviews)。是否有任何查询来查找列的位置。
答案 0 :(得分:1)
如果你一直保持命名约定在模式中具有唯一的列名,那么它就可以选择。
表:
select table_name
from information_schema.columns
where column_name = 'notes';
功能,程序:
select proname
from pg_proc
where prosrc like '%notes %';
mviews和观点:
select * from pg_matviews where definition like '%notes%';
select * from pg_views where definition like '%notes%';
当然,这种方法的效率完全取决于您对列的调用方式。从您提供的名称注释,我认为它会很低。