如何通过MySQL的INFORMATION_SCHEMA获取表字段及主键外键约束信息
MySQL 通过 INFORMATION_SCHEMA 查询主键、外键约束列
我们可以通过关联 INFORMATION_SCHEMA 下的多张系统表,筛选出带有主键、外键约束的列,同时返回所需字段,具体查询语句如下:
SELECT kcu.TABLE_NAME, kcu.COLUMN_NAME, c.DATA_TYPE, c.COLUMN_DEFAULT, kcu.CONSTRAINT_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu INNER JOIN INFORMATION_SCHEMA.COLUMNS c ON kcu.TABLE_SCHEMA = c.TABLE_SCHEMA AND kcu.TABLE_NAME = c.TABLE_NAME AND kcu.COLUMN_NAME = c.COLUMN_NAME INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc ON kcu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME AND kcu.TABLE_SCHEMA = tc.TABLE_SCHEMA AND kcu.TABLE_NAME = tc.TABLE_NAME WHERE kcu.TABLE_SCHEMA = '替换为你的实际数据库名' AND tc.CONSTRAINT_TYPE IN ('PRIMARY KEY', 'FOREIGN KEY');
注意事项:
- 执行查询前请将
替换为你的实际数据库名修改为你需要查询的目标数据库名称 - 返回结果中主键约束的
CONSTRAINT_NAME默认统一为PRIMARY,外键约束名为创建约束时自定义或系统自动生成的唯一名称
内容的提问来源于stack exchange,提问作者Farha Manakkapadikkal
相关产品推荐
相关产品推荐

