给定一个列名,我该如何找出数据库中包含该列的表?

3
  • 如何找到包含指定列名的数据库表?

    或者

  • 如何查找数据库中所有表都存在特定的列?

注:请用示例解释答案,以便我可以从答案中获得最多的知识。

编辑:我正在使用MySQL数据库。


你使用哪个数据库系统? - Jens Schauder
我正在使用MySQL数据库系统。 - Rachel
在Oracle中,可以使用不同的Oracle提供的“dict”来查找元信息,http://www.alberton.info/oracle_meta_info.html 是一个不错的阅读材料。 - Rachel
3个回答

5
SELECT * FROM information_schema.columns WHERE COLUMN_NAME = 'mycolumn'

1
@nickf - 抱歉,我应该给你一个宽限期来编辑那个错别字。无论如何,还是点赞了。 - martin clayton
MySQL将数据库的数据字典存储在information_schema数据库中。在这里,您可以查看安装在MySQL数据库中的所有列、表等内容。可能会涉及到权限问题(我不确定)。这也是您不应该手动更新的内容。旧版本(可能追溯到4.0?)没有这个功能,但它已经存在一段时间了,所以大多数较新的MySQL安装都会有它。 - Milner
...并且TABLE_SCHEMA=DATABASE() - Alex
@martinclayton 我想再加一些问题,关于如何搜索包括其类型为PK的内容。例如,查询语句应该是:where COLUMN_NAME ='<column name>' and <应该是主键>。 - Raf

0

在SQL Server中:

select distinct t.name
from sys.Columns c 
    inner join sys.tables t on c.object_id = t.object_id
where c.name = 'YOUR_COLUMNNAME'

我使用的数据库是MySQL数据库。 - Rachel

0

这取决于您使用的数据库。许多数据库系统公开了一组包含模式详细信息的表或视图。例如,您可以从Sybase ASA中的SYSTABLE和SYSCOLUMN视图获取模式信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接