ALTER TABLE - Renommer une colonne

102

Ça me rend dingue!

Je souhaite renommer une colonne de read-more en read_more dans mon tableau de blogs

J'ai essayé tout ça:

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

Et j'ai toujours ça!

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

J'utilise MySQL 5.5

Bojan
la source

Réponses:

139

La syntaxe valide est proche de votre deuxième essai, mais vous devez échapper les noms de colonnes avec des guillemets non avec des guillemets simples:

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

La requête mentionnée ci-dessus est correcte et il n'est pas nécessaire d'utiliser le mot clé "column" et les guillemets autour du nom de la table et de la colonne si vous utilisez la base de données mysql:

ALTER TABLE blog CHANGE read-more read_more VARCHAR(255) NOT NULL;
Rahul
la source
3

Voici ce qui a fonctionné pour moi:

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

Oui, j'ai en quelque sorte une colonne nommée "vm_notes]".

Boris Epstein
la source