mysql的信息_schema.tables有问题

mysql的信息_schema.tables有问题,mysql,sql,Mysql,Sql,-编辑2-3小时后,仍然有相同的问题。我正在使用noinstall归档包。 -编辑-也许有人能告诉我一个更好的方法来检查表是否存在 我的lib中有一个函数来检查是否存在一个表,这是我过去问过的 我删除了我的数据库并再次创建了它。我的代码没有正确创建表。调试后,我决定写以下内容 mysql> SELECT table_schema, table_name FROM information_schema.tables WHERE tabl e_schema = 'mydb' AND table

-编辑2-3小时后,仍然有相同的问题。我正在使用noinstall归档包。 -编辑-也许有人能告诉我一个更好的方法来检查表是否存在

我的lib中有一个函数来检查是否存在一个表,这是我过去问过的

我删除了我的数据库并再次创建了它。我的代码没有正确创建表。调试后,我决定写以下内容

mysql> SELECT table_schema, table_name FROM information_schema.tables WHERE tabl
e_schema = 'mydb' AND table_name='ApprovePost';
+--------------+-------------+
| table_schema | table_name  |
+--------------+-------------+
| mydb         | ApprovePost |
+--------------+-------------+
1 row in set (0.00 sec)
奇怪的。。。mydb被删除并再次创建(我写了
drop database mydb;
create database mydb;
。它应该消失了吗?)。让我们看看存在什么

mysql> SELECT table_schema, table_name FROM information_schema.tables WHERE tabl
e_schema = 'mydb';
Empty set (0.00 sec)
我不仅不知道为什么第一个语句显示的表破坏了我的代码,我也不知道为什么它没有显示任何表(在那个数据库中)

注意:数据库都应该是innodb。另外,这是一个新的windows安装,我可能配置了一些错误


额外的古怪

mysql> drop database mydb;
ERROR 1008 (HY000): Can't drop database 'mydb'; database doesn't exist
mysql> SELECT table_schema, table_name FROM information_schema.tables WHERE tabl
e_schema = 'mydb';
Empty set (0.00 sec)

mysql> SELECT table_schema, table_name FROM information_schema.tables WHERE tabl
e_schema = 'mydb' AND table_name='ApprovePost';
+--------------+-------------+
| table_schema | table_name  |
+--------------+-------------+
| mydb         | ApprovePost |
+--------------+-------------+
1 row in set (0.00 sec)
嗯。。。 结果是否稳定?可能是一些待处理的事务。。 图中显示了什么

show tables like '%'
此外,它可能是物理文件的问题。
mydb的文件夹是否存在?

看起来您需要使用
刷新表
命令获取SCHEMA.TABLES的信息以反映现有表

参考:


mysql>显示类似“%”的表;空集(0.00秒)--我正在检查文件。它已创建,但我将删除并尝试新文件夹。仍然存在问题。甚至在旧版本中。我想知道为什么我以前没有注意到它。我想知道它为什么这样做。显示数据库的结果是什么?文件夹mydb是否存在于im mysql data文件夹中?看起来您需要使用
FLUSH TABLES
命令获取信息\u SCHEMA.TABLES以反映现有的表:谢谢OMG Ponies。成功了!为什么这不是一个答案!;):D