对 MySQL information_schema.tables 信息感到困惑

Puzzled by MySQL information_schema.tables info

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

,从information_schema.tables中找table-name,有一个结果; 然后,select * from table-name,显示table不存在! /(ㄒoㄒ)/~~

我尝试创建一个同名的新table(MyISAM 引擎),创建成功! 然后,从information_schema.tables中查找table-name,有两个结果! 而 select * from table-name 显示空集,这是正常的。

到目前为止,table可以使用,但不能完全丢弃。 如果下降 table,它 return "First"。

如下图: all the step

我在网上找了很久。但是没有用。请帮助或尝试提供一些想法如何实现这一目标......

图像对我来说没有任何问题。当你 运行 这个:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE 
TABLE_NAME = 'report_instance_performance_20160614

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

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

我断言 table 存在于另一个模式中,而不是你在查询中 运行ning 的那个模式是你在以下情况下收到 doesn't exist 错误你试试 SELECT 从它。

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

最后,由于 table 是新创建的,并且您在 SELECT 从中 INSERT 之前没有向 table 编辑任何内容,这是完全正常的table 将是空的。