information_schema中的未知表'table_name'

时间:2016-10-26 00:10:01

标签: mysql information-schema database-indexes

我想从每个具有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中的列?

1 个答案:

答案 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"。去图。