-edit2- 3 часа спустя и все еще имеют ту же проблему. Я использую архивный пакет noinstall.
-edit- может быть, кто-то может сказать мне лучший способ проверить, существует ли таблица?
У меня есть функция в моей библиотеке, чтобы проверить, существует ли таблица, которую я спрашивал, как это сделать в прошлом.
Я удалил свою базу данных и создал ее снова. Мой код не создал таблицы должным образом. После отладки я решил написать ниже.
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)