MySQL Создание временной ошибки синтаксиса таблицы - PullRequest
1 голос
/ 11 июля 2011

Я получаю синтаксическую ошибку, когда запускаю инструкцию MySQL.

Я знаю, что к имени таблицы можно добавить обратные метки, чтобы заставить ее работать, но мне было интересно, почему это происходит вообще.

Create temporary table 6514202534e1b20f0d6331 (user_id INT (10)) ENGINE=HEAP;

Если я помещу это в Mysql Query Browser, он будет обрабатывать имя таблицы как два отдельных слова - 6514202534e1 и b20f0d6331.

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

1 Ответ

2 голосов
/ 11 июля 2011

Я думаю, это потому, что сервер (mysql) понимает его в этом случае как 6514202534 * e ^ 1 INT.

Использование символа `:

CREATE TEMPORARY TABLE `6514202534e1b20f0d6331` (user_id INT (10)) ENGINE=HEAP;

Таким образом, MySQL Server понимает (явно), что вся фраза - это база данных, таблица или поле, а не значение или функция и т. Д.

Например, `order` допустим, в то время как просто order вызовет ошибку для некорректного предложения order.

...