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

如何在MySQL中查询使用特定外键值的所有表

查找引用特定Currency.id的表名

方法一:自动生成查询语句(适合不确定关联表的场景)

先通过系统表找出所有包含currencyId字段的表,再批量生成检查语句:

-- 替换@target_currency_id为你要查询的目标ID,比如1
SET @target_currency_id = 1;

SELECT CONCAT(
    'SELECT ''', TABLE_NAME, ''' AS table_name FROM ', TABLE_NAME, 
    ' WHERE currencyId = ', @target_currency_id, ' LIMIT 1;'
) AS query_to_run
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'currencyId'
AND TABLE_SCHEMA = DATABASE(); -- 自动取当前数据库,也可手动替换为指定库名

执行这段SQL后,会得到一系列查询语句,把这些语句复制执行,返回结果里的table_name就是存在目标Currency.id记录的表。

方法二:手动检查(适合已知关联表的场景)

如果清楚可能的关联表,直接逐个验证:

-- 检查SomeTable是否存在currencyId=1的记录
SELECT 'SomeTable' AS table_name FROM SomeTable WHERE currencyId=1 LIMIT 1;

-- 替换表名即可检查其他表
SELECT 'AnotherTable' AS table_name FROM AnotherTable WHERE currencyId=1 LIMIT 1;

注意事项

  • 用LIMIT 1是为了快速判断是否存在记录,避免全表扫描,提升效率。
  • 如果你的关联表分布在不同数据库,需要修改TABLE_SCHEMA的值为对应库名。

内容的提问来源于stack exchange,提问作者احمد ربايعة

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:30:05