Таблица не существует после CREATE TABLE - PullRequest
18 голосов
/ 15 ноября 2011

Я пытаюсь импортировать этот sql в мою базу данных с именем symfony

CREATE TABLE IF NOT EXISTS ingredient (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

и я получаю

#1146 - Table 'symfony.ingredient' doesn't exist

Это кажется довольно странным, так как я пытаюсь здесь СОЗДАТЬ эту таблицу, так ... почему она не работает? У меня та же проблема, если я попробую

CREATE TABLE symfony.ingredient

Или функция в Symfony 2

c:\Dev\Symfony>php app/console doctrine:schema:create

PS: У меня эта проблема только с новой версией xampp.

EDIT

Ну, мне как-то удалось решить мою проблему. Я удалил свою базу данных, затем создал ее (не с интерфейсом) и, наконец, перезапустил службу mysql. Я не знаю, почему и как это меня отвязало, но я надеюсь, что это кому-нибудь поможет.

Ответы [ 5 ]

15 голосов
/ 07 июня 2012

У меня была такая же проблема. Мое решение: Измените имя таблицы в запросе создания таблицы, завершите его, а затем переименуйте таблицу.

Затем вы также можете удалить эту таблицу и создать ее без ошибок.

9 голосов
/ 14 июля 2012

Что сработало для меня:

  • Переход в папку xampp / mysql / data / database-name /
  • Вы увидите только файл .frm.Файлы .MYD и .MYI отсутствуют для пустых таблиц.
  • Удалите файл .frm.
  • Остановите процесс MySQL и перезапустите его.
  • После этого мне удалось создать таблицу.

Старая версия созданных таблиц xampp в MyISAM форматирует новую версию как InnoDB!

1 голос
/ 29 марта 2015

У меня была такая же проблема.При создании таблицы я получил сообщение «сервер ушел», и после этого я получил сообщения о том, что таблица не существует, но я не мог попытаться заново создать таблицу, потому что тогда я получил сообщение о том, что она существовал.Я решил это, выполнив это в командной строке:

mysqlcheck --repair --all-databases -u root -p

Также не повредит перезапустить сервер mysql после этого, а также на всякий случай.

0 голосов
/ 08 января 2015

У меня была такая же проблема: # 1146 - Таблица 'tutsplus_ci.posts' не существует. Я решил эту проблему, выполнив следующие действия:

Я сделал экспорт инкриминированной таблицы в файл sql. Я заметил, что имя таблицы в файле .sql имеет дополнительный завершающий пробел. Я переключаюсь обратно на phpmyadmin в разделе «Операции» моей таблицы и переименовываю таблицу из «posts» в «posts». После выполнения всех этих действий ошибка не появилась.

В заключение, действительно, таблица 'posts' не существует, как говорится в сообщении об ошибке. Потому что фактическое имя таблицы было «посты», а не «посты». Пробел перед именем трудно заметить в phpmyadmin. Это история. Ничего особенного. Я надеюсь, что это помогает!

0 голосов
/ 16 ноября 2011

Хм, вы уверены, что у вас есть база данных и у вас есть права на выполнение операторов CREATE.

Если у вас есть phpmyadmin:

Чтобы проверить первую возможность, создайте новый (пустой) тестбазы данных, щелкните ее в меню, а затем нажмите кнопку SQL в верхней панели навигации и снова скопируйте и вставьте свое утверждение.Если это не работает, попробуйте второй.

Для второго вы можете нажать кнопку «Домой» и перейти к «Привилегии».Если есть только две или три учетные записи, но все с привилегиями root, у вас есть права на создание CREATE.В противном случае вы можете проверить свою учетную запись и предоставить себе привилегии.

Если обе возможности не сработали, я тоже не знаю.У меня все работало нормально: (

...