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

如何对比不同数据库中两张表的列并找出仅在Table_1存在的列

问题原因

INFORMATION_SCHEMA.COLUMNS 表的查询默认仅匹配当前连接数据库下的表元数据,你之前的语句仅指定了表名筛选条件,没有指定表所属的数据库,跨库查询时自然无法匹配到另一库的表信息。

解决方案

在查询条件中增加TABLE_SCHEMA字段筛选,明确指定表所属的数据库,即可在任意数据库环境下执行查询:

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'Database_1' AND TABLE_NAME = 'Table_1'
EXCEPT
SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'Database_2' AND TABLE_NAME = 'Table_2'

补充说明

  • 如果你使用的是SQL Server,且表属于非默认schema,可以额外增加对应schema的筛选条件,示例:WHERE TABLE_CATALOG = 'Database_1' AND TABLE_SCHEMA = '自定义schema名' AND TABLE_NAME = 'Table_1'
  • 执行语句的账号需要拥有两个数据库的元数据读取权限,否则仍会返回空结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:24:10