MySQL数据库查看库表所有外键

作者:jcmp      发布时间:2021-05-04      浏览量:0
一、第一种方法是网上的方法,可以直接使用

一、第一种方法

是网上的方法,可以直接使用,【MySQL 查看数据库中有主外键关系的表信息】

SELECT C.TABLE_SCHEMA 拥有者, C.REFERENCED_TABLE_NAME 父表名称, C.REFERENCED_COLUMN_NAME 父表字段, C.TABLE_NAME 子表名称, C.COLUMN_NAME 子表字段, C.CONSTRAINT_NAME 约束名, T.TABLE_COMMENT 表注释, R.UPDATE_RULE 约束更新规则, R.DELETE_RULE 约束删除规则FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE CJOIN INFORMATION_SCHEMA. TABLES T ON T.TABLE_NAME = C.TABLE_NAMEJOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS R ON R.TABLE_NAME = C.TABLE_NAMEAND R.CONSTRAINT_NAME = C.CONSTRAINT_NAMEAND R.REFERENCED_TABLE_NAME = C.REFERENCED_TABLE_NAMEWHERE C.REFERENCED_TABLE_NAME IS NOT NULL;

UPDATE/DELETE_RULE 类型:

二、第二种方法:

第二种方法会列出所有的非系统数据所有表的主键信息和外键信息,第一种方法只会列出外键约束信息。

SELECT O.CONSTRAINT_SCHEMA, O.CONSTRAINT_NAME, O.TABLE_SCHEMA, O.TABLE_NAME, O.COLUMN_NAME, O.REFERENCED_TABLE_SCHEMA, O.REFERENCED_TABLE_NAME, O.REFERENCED_COLUMN_NAME, O.UPDATE_RULE, O.DELETE_RULE, O.UNIQUE_CONSTRAINT_NAME, T.CONSTRAINT_TYPEFROM ( SELECT K.CONSTRAINT_SCHEMA, K.CONSTRAINT_NAME, K.TABLE_SCHEMA, K.TABLE_NAME, K.COLUMN_NAME, K.REFERENCED_TABLE_SCHEMA, K.REFERENCED_TABLE_NAME, K.REFERENCED_COLUMN_NAME, R.UPDATE_RULE, R.DELETE_RULE, R.UNIQUE_CONSTRAINT_NAME FROM information_schema.KEY_COLUMN_USAGE K LEFT JOIN information_schema.REFERENTIAL_CONSTRAINTS R ON K.CONSTRAINT_NAME = R.CONSTRAINT_NAME ) AS OINNER JOIN Information_schema.TABLE_CONSTRAINTS T ON O.Table_Name = T.TABLE_NAMEAND T.CONSTRAINT_NAME = O.CONSTRAINT_NAMEWHERE O.CONSTRAINT_SCHEMA != 'mysql'AND O.CONSTRAINT_SCHEMA != 'sys';