MySQL information_schema.tables信息困惑

时间:2016-06-14 09:24:48

标签: mysql myisam information-schema

由于某些未知原因,' information_schema.tables'的信息与真实表格不匹配:

首先,从information_schema.tables中找到table-name,有一个结果; 然后,从表名中选择*,它显示表不存在! /(ㄒöㄒ)/ ~~

我尝试创建一个具有相同名称的新表(MyISAM引擎),它创建正常! 然后,从information_schema.tables中找到table-name,有两个结果! 并且select * from table-name显示空集,通常是。

到目前为止,表可以使用,但不能完全丢弃。 如果是drop table,则返回" First"。

如下图所示: all the step

我在网上搜索了很长时间。但没用。请帮助或尝试提出一些如何实现这一目标的想法......

1 个答案:

答案 0 :(得分:1)

图像显示我没有错。当你运行它:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE 
TABLE_NAME = 'report_instance_performance_20160614

并得到一个结果,您可能会在与运行该查询的不同架构中获得该名称的表的结果。运行它以查看是否有错误会更有帮助:

SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE
TABLE_NAME = 'report_instance_performance_20160614'

我断言该表存在于另一个架构中但不是您在查询中运行的那个表是您在尝试{{1}时遇到doesn't exist错误来自它。

接下来,当您创建该表的新实例然后运行SELECT查询时,您将获得两个结果,因为您现在已在当前架构中创建了一个具有该名称的表。如果该表已存在于您当前的架构中,那么您将收到一个错误,即该架构中已存在该名称的表。这进一步支持了我的断言INFORMATION_SCHEMA.TABLES存在于不同的模式中。

最后,由于该表是新创建的,并且您在report_instance_performance_20160614之前没有INSERT在表格中输入任何内容,因此该表格完全正常空。