我正在从 MySql 中的 information_schema 中获取表、列、约束的所有属性
select t.*,c.*,k.*
from information_schema.tables t
inner join information_schema.COLUMNS c on c.table_name=t.table_name
left outer join information_schema.key_column_usage k on
c.column_name=k.column_name
and k.table_name=t.table_name and k.referenced_column_name is not NULL
where t.table_schema='test' order by t.table_name;
这个查询的问题是,如果我在任何其他数据库中有一个同名的表,我也会得到该表的列,即使我清楚这个特定数据库的 where 条件
如果我不使用左外连接,我会发现很多列都丢失了,因为所有列都不是外键
我需要改进这个查询以及一些指导,但是一个完全不同的解决方案也是可以接受的。
改进查询结果的行数必须等于
select count(*) from information_schema.columns c where c.table_schema='test';
提前感谢您的帮助:)