Cambiar el nombre de una tabla en MySQL


285

Cambiar el nombre de una tabla no funciona en MySQL

RENAME TABLE group TO member;

El mensaje de error es

#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 consulta funciona bien en otras tablas para mí, pero no con la tabla group.



3
Ambos sqls son iguales. Pruebe esta tabla de cambio de nombre 'grupo' a miembro
usuario1406062

55
Esto ilustra muy bien lo inútil que es usar mayúsculas para las palabras clave.
Martin Jambon

8
No, no lo hace. Las palabras clave mayúsculas mejoran la legibilidad y se espera que tengan un estilo estándar.
fmalina

Respuestas:


474

groupes una palabra clave (parte de GROUP BY ) en MySQL, debe rodearla con backticks para mostrar a MySQL que desea que se interprete como un nombre de tabla:

RENAME TABLE `group` TO `member`;

agregado (ver comentarios) - Esas no son comillas simples.


51
Y sí, necesita la marca de retroceso `y no la comilla simple 'Hice la comilla simple por hábito, y obtuve el error, pero tal vez esto le ahorrará a alguien más 10 segundos
Paul

Algunas palabras clave, como NAME, todavía están disponibles sin marcas de retroceso. Creo que esta disponibilidad es una mala práctica, que debería eliminarse un día de MySQL
ad4s

2
O no use palabras clave para tablas o columnas.
jDub9

1
NO USE PALABRAS CLAVE PARA TABLAS O COLUMNAS.
mydoglixu


31

La consulta mysql para cambiar el nombre de la tabla es

Rename Table old_name TO new_name

En su consulta, ha utilizado agrupar cuál de las palabras clave en MySQL. Intente evitar las palabras clave mysql para el nombre al crear la tabla, el nombre del campo, etc.


23
ALTER TABLE old_table_name RENAME new_table_name;

o

RENAME TABLE old_table_name TO new_table_name;


16

Cambio de nombre de tabla

RENAME TABLE old_table_name TO new_table_name;

14

grupo - es una palabra reservada en MySQL, es por eso que ves ese error.

#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

Necesita envolver el nombre de la tabla en backticks :

RENAME TABLE `group` TO `member`;

13
ALTER TABLE `group` RENAME `member`

grupo es una palabra clave, por lo que debe encerrarse en group


9
RENAME TABLE tb1 TO tb2;

tb1: nombre de la tabla actual. tb2: el nombre al que desea que se llame su tabla.


8

Según mysql docs : "cambiar el nombre de las TEMPORARYtablas, RENAME TABLEno funciona. Usar en su ALTER TABLElugar".

Entonces este es el método más portátil:

ALTER TABLE `old_name` RENAME `new_name`;

6

Prueba cualquiera de estos

RENAME TABLE `group` TO `member`;

o

ALTER TABLE `group` RENAME `member`;

2

Para Mysql 5.6.18usar el siguiente comando

ALTER TABLE `old_table` RENAME TO `new_table`

Además, si hay un error que dice ".... cerca de RENAME TO ..." intente eliminar la marca `



1

Puedes usar

RENAME TABLE `group` TO `member`;

Use la marca de retroceso (`) en lugar de la comilla simple (').


-1

Sin dar el nombre de la base de datos, la tabla no se puede renombrar en mi caso, seguí el siguiente comando para cambiar el nombre de la tabla.

RENAME TABLE current_db.tbl_name TO current_db.tbl_name;

-6

Haga clic derecho en Ver> Nueva consulta

Y escriba: EXEC sp_rename 'Table', 'NewName'

Luego haga clic en el botón Ejecutar en la esquina superior izquierda de la página.


MySQL no Transact SQL
Adam Joseph Looze
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.