You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在含百张表的数据库中批量查找指定列及实体?

搜索数据库中的指定列名及目标实体

一、查找指定列名所属的表

不同数据库可通过系统元数据表快速检索,无需逐个检查表,以下是主流数据库的实现脚本:

MySQL/MariaDB

SELECT table_schema AS '数据库名', table_name AS '表名'
FROM information_schema.COLUMNS
WHERE column_name = '你的目标列名'
ORDER BY table_schema, table_name;

替换'你的目标列名'为要查找的列名,结果会返回所有包含该列的数据库和表。

PostgreSQL

SELECT table_schema AS "数据库名", table_name AS "表名"
FROM information_schema.columns
WHERE column_name = '你的目标列名'
ORDER BY table_schema, table_name;

若仅需查询当前连接的数据库,可添加条件:AND table_schema = current_schema()

SQL Server

SELECT TABLE_CATALOG AS '数据库名', TABLE_NAME AS '表名'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = '你的目标列名'
ORDER BY TABLE_CATALOG, TABLE_NAME;

二、在找到的列中搜索目标实体

找到列所属的表后,可生成批量查询语句快速检索目标实体,示例如下:

MySQL版本

SELECT CONCAT(
    'SELECT ''', table_name, ''' AS 表名, ', column_name, ' FROM ', table_name, 
    ' WHERE ', column_name, ' = ''你的目标实体'';'
) AS 查询语句
FROM information_schema.COLUMNS
WHERE column_name = '你的目标列名';

执行该语句会生成一系列查询脚本,复制这些脚本执行即可获取包含目标实体的表和对应列值。

SQL Server版本

SELECT 'SELECT ''' + TABLE_NAME + ''' AS 表名, ' + COLUMN_NAME + ' FROM ' + TABLE_NAME + 
' WHERE ' + COLUMN_NAME + ' = ''你的目标实体'';' AS 查询语句
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = '你的目标列名';

内容的提问来源于stack exchange,提问作者Barney Collins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 04:33:16