小编典典

mysql遇到information_schema.tables的麻烦

sql

-edit2-3小时后,仍然有相同的问题。我正在使用noinstall存档软件包。-编辑-也许有人可以告诉我一种检查表是否存在的更好方法?

我的函数库中有一个函数来检查是否存在一个表,该表过去我曾问过要怎么做。

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

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)

阅读 366

收藏
2021-04-07

共1个答案

小编典典

看起来您需要FLUSH TABLES为INFORMATION_SCHEMA.TABLES使用命令以反映现有表。

参考:

2021-04-07