SQL SHOW TABLES列出了一堆表,但不能用它们进行SELECT(没有这样的表)

时间:2011-07-18 01:45:11

标签: mysql sql mysql-error-1146

我有一个名为apsc的数据库,如果我在其上运行SHOW TABLES;,则会产生以下结果:

mysql> show tables;
+------------------------------------+
| Tables_in_apsc                     |
+------------------------------------+
| aps_application                    |
| aps_application_backup             |
| aps_application_resource           |
| aps_package                        |
| aps_package_configuration          |
| aps_package_global_setting         |
| aps_package_resource_configuration |
| aps_package_resource_setting       |
| aps_package_series                 |
| aps_package_service                |
| aps_registry_object                |
| aps_registry_object_setting        |
| aps_registry_object_tag            |
| aps_resource                       |
| aps_resource_backup                |
| aps_resource_requirement           |
| aps_resource_requirement_backup    |
| aps_settings_sequenses             |
+------------------------------------+
18 rows in set (0.00 sec)

但是,如果我运行SELECT * FROM aps_application,我会得到这个:

mysql> SELECT * FROM aps_application;
ERROR 1146 (42S02): Table 'apsc.aps_application' doesn't exist

在我的/var/lib/mysql/apsc/目录中有一堆.frm文件让我相信这些表是InnoDB。但是,如果它们只是在/var/lib/mysql/apsc/ibdata1中的数据/日志文件中损坏或丢失,它们应显示为table in use或不显示,因为我最近遇到了其他InnoDB表的问题。

我相信这些表是Plesk的一部分,因为我在某些时候被数据库文件覆盖并收到有关缺少视图aps_application的错误。 Plesk现在工作正常,所以我怀疑桌子是否腐败。

此外,SHOW CREATE TABLE aps_applicationSHOW CREATE VIEW aps_application均以与select相同的错误失败。

编辑:我以root身份登录并拥有完全权限。要检查这一点,我切换了表格,SELECT就像魅力一样。此外,如果我在phpMyAdmin并选择此数据库,它将显示0表,除非我运行SHOW TABLES;在SQL选项卡中;

3 个答案:

答案 0 :(得分:2)

好吧,在这里黑暗中刺,但如果你完全符合表名的话怎么办?另外,尝试通过在名称后面加一个'_'来更改表名,然后看看是否可以选择它。

答案 1 :(得分:1)

我有类似的问题。就我而言,它是区分大小写的。 select * from usersselect * from USERS不同。所以也许你可以尝试使用大写的表名或用它创建的大小写。

答案 2 :(得分:0)

原来他们不是桌子,我从来没有弄清楚它们是什么:(