ALTER TABLE - Renombrar una columna

102

¡Esto me está volviendo loco!

Quiero cambiar el nombre de una columna de read-more a read_more en la tabla de mi blog

Intenté todo esto:

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

¡Y siempre consigo esto!

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

Estoy usando MySQL 5.5

Bojan
fuente

Respuestas:

139

La sintaxis válida está cerca de su segundo intento, pero debe escapar de los nombres de columna con comillas inversas, no con comillas simples:

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

La consulta mencionada anteriormente es correcta y no es necesario usar la palabra clave "columna" y las comillas alrededor de la tabla y el nombre de la columna si está utilizando la base de datos mysql:

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

Esto es lo que funcionó para mí:

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

Sí, de alguna manera obtuve una columna llamada "vm_notes]" allí.

Boris Epstein
fuente