Невозможно создать таблицу с подчеркиванием в имени таблицы MySQL v5.5.14 - PullRequest
1 голос
/ 03 апреля 2012

Я использую Mysql v5.5.14 и при попытке выполнить:

mysql> CREATE TABLE IF NOT EXISTS LONGBOW_products.universal_partname (
    ->    part_id SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0,
    ->    PRIMARY KEY (part_id)
    -> );

Это возвращает мне ошибку:

ERROR 1005 (HY000): Can't create table 'LONGBOW_products.universal_partname' (errno: -1)

Однако, когда я попытался удалить подчеркивание из имени таблицы, он возвращает true:

mysql> CREATE TABLE IF NOT EXISTS LONGBOW_products.universal (
    ->    part_id SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0,
    ->    PRIMARY KEY (`part_id`)
    -> );
Query OK, 0 rows affected (0.00 sec)

Интересно, вы не можете больше использовать подчеркивания в имени таблицы в более новых версиях Mysql?

Ответы [ 2 ]

2 голосов
/ 08 ноября 2012

Не уверен, что вы решили эту проблему.Я получил похожую проблему с очень простым оператором CREATE: Код ошибки: 1005. Не могу создать таблицу 'UCQ.country' (errno: -1).

Согласно http://dev.mysql.com/doc/refman/5.5/en/innodb-error-codes.html «Если сообщение об ошибке относится к ошибке –1, возможно, создание таблицы завершилось неудачно, поскольку таблица содержит имя столбца, совпадающее с именем внутренней таблицы InnoDB.»

Однако я решил свою проблему, когда посмотрел на mysql_error_log.err: 21107 18:23:19 InnoDB: Ошибка создания файла './ucq/country.ibd'.121107 18:23:19 InnoDB: Ошибка операционной системы № 17 в файловой операции.InnoDB: Ошибка № 17 означает «Файл существует».InnoDB: некоторые номера ошибок операционной системы описаны в InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html InnoDB: файл уже существует, хотя соответствующая таблица не InnoDB: существует в словаре данных InnoDB.Перемещали ли вы файлы InnoDB InnoDB: .ibd без использования команд SQL InnoDB: DISCARD TABLESPACE и IMPORT TABLESPACE, или InnoDB: mysqld вылетал в середине CREATE TABLE?Вы можете InnoDB: разрешить проблему, удалив файл.

0 голосов
/ 03 апреля 2012

Имена баз данных и таблиц не могут содержать “/”, “\”, “.”, или символов, которые не допускаются в именах файлов.

См .: http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html

Удалить "." из названия таблицы

...