web-dev-qa-db-fra.com

ALTER TABLE - Renommer une colonne

Ça me rend dingue!

Je veux renommer une colonne de read-more en read_more dans ma table de blog

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 je comprends 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

105
Bojan

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

ALTER TABLE `blog` CHANGE COLUMN `read-more` `read_more` VARCHAR(255) NOT NULL;
141
GhostGambler
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é "colonne" 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;
18
rahul

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]" là-dedans.

3
Boris Epstein