Renommer une table dans MySQL


285

Renommer une table ne fonctionne pas dans MySQL

RENAME TABLE group TO member;

Le message d'erreur est

#1064 - 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 'group 
        RENAME TO member' at line 1

La requête fonctionne bien sur d'autres tables pour moi, mais pas avec la table group.



3
Les deux sqls sont identiques. Essayez de renommer la table «groupe» en membre
user1406062

5
Cela illustre bien à quel point il est inutile d'utiliser des majuscules pour les mots clés.
Martin Jambon

8
Non. Les mots clés en majuscules améliorent la lisibilité et sont attendus dans le style standard.
fmalina

Réponses:


474

groupest un mot-clé (partie de GROUP BY ) dans MySQL, vous devez l'entourer de backticks pour montrer à MySQL que vous voulez qu'il soit interprété comme un nom de table:

RENAME TABLE `group` TO `member`;

ajouté (voir commentaires) - Ce ne sont pas des guillemets simples.


51
Et oui, vous avez besoin de la coche arrière `et non de la citation unique 'J'ai fait la citation simple par habitude, et j'ai eu l'erreur, mais cela sauvera peut-être quelqu'un d'autre 10 secondes
Paul

Certains mots clés, tels que NAME, sont toujours disponibles sans retour en arrière. Je pense que cette disponibilité est une mauvaise pratique, qui devrait être supprimée un jour de MySQL
ad4s

2
Ou n'utilisez pas de mots clés pour les tableaux ou les colonnes.
jDub9

1
N'UTILISEZ PAS DE MOTS CLÉS POUR DES TABLEAUX OU DES COLONNES.
mydoglixu


31

La requête mysql pour renommer la table est

Rename Table old_name TO new_name

Dans votre requête, vous avez utilisé le groupe qui est l'un des mots clés de MySQL. Essayez d'éviter les mots-clés mysql pour le nom lors de la création de la table, du nom du champ, etc.


23
ALTER TABLE old_table_name RENAME new_table_name;

ou

RENAME TABLE old_table_name TO new_table_name;

19

Renommez une table dans MySQL:

ALTER TABLE current_name RENAME new_name;

5
Bienvenue chez SO. Veuillez lire ce tutoriel pour fournir une réponse de qualité. Afficher le code n'est pas une bonne pratique.
thewaywewere

16

Changement de nom de table

RENAME TABLE old_table_name TO new_table_name;

14

group - est un mot réservé dans MySQL, c'est pourquoi vous voyez une telle erreur.

#1064 - 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 'group 
        RENAME TO member' at line 1

Vous devez envelopper le nom de la table dans des crochets :

RENAME TABLE `group` TO `member`;

13
ALTER TABLE `group` RENAME `member`

le groupe est un mot-clé, vous devez donc group


9
RENAME TABLE tb1 TO tb2;

tb1 - nom actuel de la table. tb2 - le nom que vous voulez que votre table soit appelée.


8

Selon les documents mysql : "renommer des TEMPORARYtables, RENAME TABLEne fonctionne pas. Utilisez à la ALTER TABLEplace."

C'est donc la méthode la plus portable:

ALTER TABLE `old_name` RENAME `new_name`;

6

Essayez l'une de ces options

RENAME TABLE `group` TO `member`;

ou

ALTER TABLE `group` RENAME `member`;

2

Pour Mysql 5.6.18utiliser la commande suivante

ALTER TABLE `old_table` RENAME TO `new_table`

Aussi, s'il y a une erreur disant ".... près de RENOMMER POUR ...", essayez de supprimer la coche `



1

Vous pouvez utiliser

RENAME TABLE `group` TO `member`;

Utilisez une coche arrière (`) au lieu d'un guillemet simple (').


-1

Sans donner le nom de la base de données, la table ne peut pas être renommée dans mon cas, j'ai suivi la commande ci-dessous pour renommer la table.

RENAME TABLE current_db.tbl_name TO current_db.tbl_name;

-6

Clic droit sur Affichage> Nouvelle requête

Et tapez: EXEC sp_rename 'Table', 'NewName'

Cliquez ensuite sur le bouton Exécuter dans le coin supérieur gauche de la page.


MySQL pas Transact SQL
Adam Joseph Looze
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.