ALTER TABLE - переименовать столбец

102

Это сводит меня с ума!

Я хочу переименовать столбец из read-more в read_more в моей таблице блога

Я попробовал все это:

  ALTER TABLE blog RENAME COLUMN read-more to read_more;
  ALTER TABLE blog CHANGE COLUMN 'read-more' 'read_more' VARCHAR(255) NOT NULL;

И я всегда получаю это!

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 'COLUMN read-more to read_more' at line 1

Я использую MySQL 5.5

Боян
источник

Ответы:

139

Действительный синтаксис близок к вашей второй попытке, но вы должны экранировать имена столбцов с помощью обратных кавычек, а не одинарных кавычек:

ALTER TABLE `blog` CHANGE COLUMN `read-more` `read_more` VARCHAR(255) NOT NULL;
GhostGambler
источник
18
ALTER TABLE `blog` CHANGE  `read-more` `read_more` VARCHAR(255) NOT NULL;

Вышеупомянутый запрос является правильным, и нет необходимости использовать ключевое слово «column» и кавычки вокруг таблицы и имени столбца, если вы используете базу данных mysql:

ALTER TABLE blog CHANGE read-more read_more VARCHAR(255) NOT NULL;
Рахул
источник
3

Вот что сработало для меня:

ALTER TABLE vm_list CHANGE `vm_notes]` vm_notes VARCHAR(255); 

Query OK, 0 rows affected (0.01 sec) 
Records: 0  Duplicates: 0  Warnings: 0

Да, я каким-то образом получил столбец с именем "vm_notes]" там.

Борис Эпштейн
источник