查找具有与给定模式匹配的列名称的表

nem*_*ixx 3 mysql sql postgresql introspection relational-database

这可能听起来有点不太现实,但我最近不得不研究远程维护系统的数据库结构,当我想找到链接到给定表的所有列时,我发现有一些情况. (参见,原始开发人员没有创建显式关系,而是在列名中编码关系!).

例如,假设所有引用列的列parent.parent都具有表单table.somefield_parent作为记录两个字段之间关系的方法,那么如何使用标准SQL命令/内置函数来查找所有这些关系(以及所涉及的表)?

任何MySQL或PostgreSQL的解决方案都是受欢迎的.

注意 :

  • 我不是在寻找数据中的模式,而是在元数据中.
  • 我知道我可以转储db结构并在那里搜索结果,但是我不想离开db-shell来找到这些关系(假设我正在使用psql,并且不想退出)

Joh*_*ery 7

尝试查询information_schema.columns视图.它适用于MySQL,但我没有在Postgres中尝试过.该information_schema模式是ANSI SQL标准的一部分,因此Postgres很可能也会拥有它.

information_schema包含中的其他视图information_schema.tables,也很有用

  • 我做了类似`select table_name,column_name from information_schema.columns,其中column_name像'%_parent'和table_catalog ='sat';`,它解决了我的问题.谢谢 (3认同)