Mysql ошибка при добавлении таблицы так скрипт - PullRequest
4 голосов
/ 03 марта 2012

Mysql ошибка (пожалуйста, не смеются)

Я сделал скрипт, который генерирует статистическую таблицу для моего сайта. Этот скрипт генерирует более 2000 таблиц, которые используются для разных статистических данных с разной степенью детализации, например:

  • таблицы по годам
  • таблиц в день
  • таблиц пользователей
  • таблицы от user_agent

и т.д ... (не спрашивайте меня, почему это было сделано предыдущим так называемым архитектором - хотя они загружаются менее чем за 0,02 секунды)

Поэтому я обновил скрипт, добавив новые таблицы, но допустил ошибку.

Я поставил пробел в имени таблицы и теперь не могу его удалить. поэтому я пытаюсь убрать его, но безуспешно:

root@summary:reports> drop table xd_2012_02_\ ua;
ERROR: 
Unknown command '\ '.
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\ ua' at line 1

Ответы [ 2 ]

8 голосов
/ 03 марта 2012

Вы должны использовать ` - Это будет обрабатывать строку, переданную как фактическое имя таблицы, а не набор команд, которые вы хотите выполнить.

root@summary:reports> drop table `xd_2012_02_\ ua`;

Это должно показать:

Query OK, 0 rows affected (0.00 sec)

Я бы порекомендовал использовать ` не только для этого случая, но и для предотвращения ошибок, если вы используете зарезервированные слова MySQL, такие как type или desc (как описание) для столбцов или имен таблиц.Это может избавить вас от головной боли позже.Хотя использование зарезервированных или специальных символов не очень хорошая практика, но это только я.

0 голосов
/ 03 марта 2012

используйте этот синтаксис:

drop table \`xd_2012_02 ua\`;

это должно работать с пробелом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...