ALTER TABLE - Renomeie uma coluna

102

Isso está me deixando louco!

Quero renomear uma coluna de leia mais para read_more na minha tabela de blog

Eu tentei tudo isso:

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

E eu sempre entendo isso!

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

Eu estou usando o MySQL 5.5

Bojan
fonte

Respostas:

139

A sintaxe válida está próxima da sua segunda tentativa, mas você precisa escapar dos nomes das colunas com backticks e não com aspas simples:

ALTER TABLE `blog` CHANGE COLUMN `read-more` `read_more` VARCHAR(255) NOT NULL;
GhostGambler
fonte
18
ALTER TABLE `blog` CHANGE  `read-more` `read_more` VARCHAR(255) NOT NULL;

A consulta acima mencionada está correta e não há necessidade de usar a palavra-chave "column" e aspas em torno do nome da tabela e da coluna se você estiver usando o banco de dados mysql:

ALTER TABLE blog CHANGE read-more read_more VARCHAR(255) NOT NULL;
rahul
fonte
3

Aqui está o que funcionou para mim:

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

Sim, de alguma forma eu tenho uma coluna chamada "vm_notes]" lá.

Boris Epstein
fonte