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

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;

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;

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]".

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.