开发者社区> 问答> 正文

如何查找所有具有引用特定table.column的外键并具有这些外键值的表?

我有一个表,其主键在其他几个表中作为外键被引用。例如:

CREATE TABLE X ( X_id int NOT NULL auto_increment, name varchar(255) NOT NULL, PRIMARY KEY (X_id) ) CREATE TABLE Y ( Y_id int(11) NOT NULL auto_increment, name varchar(255) NOT NULL, X_id int DEFAULT NULL, PRIMARY KEY (Y_id), CONSTRAINT Y_X FOREIGN KEY (X_id) REFERENCES X (X_id) ) CREATE TABLE Z ( Z_id int(11) NOT NULL auto_increment, name varchar(255) NOT NULL, X_id int DEFAULT NULL, PRIMARY KEY (Z_id), CONSTRAINT Z_X FOREIGN KEY (X_id) REFERENCES X (X_id) ) 现在,我不知道数据库中有多少个表包含X等外键,如表Y和Z。是否可以使用SQL查询返回:

在X中具有外键的表的列表 AND这些表中的哪一个实际上在外键中具有值

展开
收起
保持可爱mmm 2020-05-10 22:31:19 553 0
1 条回答
写回答
取消 提交回答
  • 干得好:

    USE information_schema; SELECT * FROM KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'X' AND REFERENCED_COLUMN_NAME = 'X_id'; 如果您的多个数据库具有相似的表/列名称,则可能还希望将查询限制为特定的数据库:

    SELECT * FROM KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'X' AND REFERENCED_COLUMN_NAME = 'X_id' AND TABLE_SCHEMA = 'your_database_name';来源:stack overflow

    2020-05-10 22:31:36
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载