我想从每个具有show index
(数据库名称)的表中table_schema='foo'
。
mysql> show index from table_name from information_schema.tables where table_schema='foo';
ERROR 1109 (42S02): Unknown table 'table_name' in information_schema
从错误中,我看到该查询将'table_name'
视为information_schema
中的表格。如何重写查询以将'table_name'
视为information_schema.tables
中的列?
答案 0 :(得分:0)
你正在接近这个错误,并且你正在编写那些不存在的语法。
我建议你想要获取索引的方法是阅读INFORMATION_SCHEMA.STATISTICS
表,而不是TABLES
表。
以下查询与SHOW INDEXES
具有相同的列:
SELECT table_name AS `Table`, Non_unique, index_name AS Key_name,
Seq_in_index, Column_name, Collation, Cardinality, Sub_part,
Packed, Nullable, Index_type, Comment, Index_comment
FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_schema = 'foo';
您可能认为应该有一个名为" INDEXES"的I_S表。但事实上,索引对象的系统表名为" STATISTICS"。去图。