MySQL Hash Value в качестве имени столбца - PullRequest
0 голосов
/ 18 октября 2011

Я получаю синтаксическую ошибку при создании таблицы с результатом md5(microtime()) PHP в качестве имени столбца.

В частности, ошибка выдается в части с **, окружающими ее:

CREATE TABLE form_data_38 (
    id           INT SIGNED auto_increment NOT NULL,
    rltd_pri_key INT SIGNED NULL,
    0accc77c084cc74a51dee479f8d095e3   TEXT(65535) NOT NULL,
    **092e60b78f7804e86ea9a6e83701a929 TEXT(65535) NOT NULL**,
    6734131796201537410e4d43635bf1b3   TEXT(65535) NULL,
    PRIMARY KEY (id)
) TYPE=InnoDB;

Что меня смущает, так это почему он выбрасывается в этом месте, а не в двух других хеш-значениях до него. Я добавил 'a' к именам столбцов, и это создало таблицу без проблем. Я искал правила именования MySQL и пока ничего не придумал. Он просто говорит, что все алфавитно-цифровые символы плюс «_» и «$» допустимы для использования, что в этом случае вполне подойдет.

Чего мне не хватает?

1 Ответ

1 голос
/ 18 октября 2011

Поместите имена таблиц и полей в кавычки: `09e4_fieldName`, по крайней мере, для тех, кто может создать такие проблемы:

CREATE TABLE form_data_38 
  ( id INT SIGNED auto_increment NOT NULL 
  , rltd_pri_key INT SIGNED NULL 
  , `0accc77c084cc74a51dee479f8d095e3` TEXT(65535) NOT NULL 
  , `092e60b78f7804e86ea9a6e83701a929` TEXT(65535) NOT NULL 
  , `6734131796201537410e4d43635bf1b3` TEXT(65535) NULL 
  , PRIMARY KEY (id) 
  ) 
ENGINE = InnoDB ;                    --- ENGINE, not TYPE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...