Как я выхожу из зарезервированных слов, используемых в качестве имен столбцов? Таблица MySQL/создавать

Я генерирую таблицы от классов в.NET, и одной проблемой является класс, может иметь имя поля key который является зарезервированным ключевым словом MySQL. Как я выхожу из него в создать операторе таблицы? (Отметьте: другой проблемой ниже является текст, должен быть фиксированный размер, чтобы быть индексируемым/уникальным),

create table if not exists misc_info (
id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
key TEXT UNIQUE NOT NULL,
value TEXT NOT NULL)ENGINE=INNODB;
135
задан Jonathan Leffler 22 May 2010 в 21:52
поделиться

2 ответа

Вы можете использовать двойные кавычки, если включен режим ANSI SQL

CREATE TABLE IF NOT EXISTS misc_info
  (
     id    INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
     "key" TEXT UNIQUE NOT NULL,
     value TEXT NOT NULL
  )
ENGINE=INNODB; 

или проприетарный обратная галочка убегает в противном случае. (Где найти символ ` на различных раскладках клавиатуры, описано в этом ответе )

CREATE TABLE IF NOT EXISTS misc_info
  (
     id    INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
     `key` TEXT UNIQUE NOT NULL,
     value TEXT NOT NULL
  )
ENGINE=INNODB; 

(Источник: Справочное руководство по MySQL, 9.3 Зарезервированные слова )

175
ответ дан 23 November 2019 в 23:45
поделиться

Вы должны использовать символ обратного тика (`), например:

create table if not exists misc_info (
id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
`key` TEXT UNIQUE NOT NULL,
value TEXT NOT NULL)ENGINE=INNODB;
69
ответ дан 23 November 2019 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: