-edit2- 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;并创建了数据库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)