Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Renombrar varias tablas MySQL

Estas en el tema de Renombrar varias tablas MySQL en el foro de Bases de Datos General en Foros del Web. Hola chicos. Resulta ser que quiero renombrar todas las tablas que tengo en mi BD de MySQL añadiéndolas un "1_" sin tener que estar haciéndola ...
  #1 (permalink)  
Antiguo 06/01/2012, 07:58
Avatar de andres_aquino  
Fecha de Ingreso: septiembre-2010
Ubicación: $("#place").html("FDW");
Mensajes: 138
Antigüedad: 13 años, 7 meses
Puntos: 24
Renombrar varias tablas MySQL

Hola chicos. Resulta ser que quiero renombrar todas las tablas que tengo en mi BD de MySQL añadiéndolas un "1_" sin tener que estar haciéndola una por una. Hacer un ALTER TABLE t1 RENAME t2 funciona bien de a una, pero en mi caso, que quiero hacerla a todas las tablas que tengo, cómo lo hago?

De antemano, gracias por la ayuda que me den
__________________
Te sirvió mi ayuda? +1 ;D
Andy Aquino - @aquiandres
  #2 (permalink)  
Antiguo 06/01/2012, 08:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Renombrar varias tablas MySQL

Lo haces una a una...

MySQL no tiene sentencias para cambios globales de nombres a las tablas. Sería muy peligroso para la estabilidad de las bases de datos en caso de ser ejecutada si precauciones, o por alguien sin suficientes conocimientos.
Además, es muy mala práctica anteponer un número a un nombre de objetos de bases de datos. Tienden a generar errores, porque se espera que el nombre comience siempre con un caracter alfabético o símbolo de uso alfabético.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 06/01/2012, 08:11
Avatar de andres_aquino  
Fecha de Ingreso: septiembre-2010
Ubicación: $("#place").html("FDW");
Mensajes: 138
Antigüedad: 13 años, 7 meses
Puntos: 24
Respuesta: Renombrar varias tablas MySQL

Muchas gracias @gnzsoloyo. Nunca había intentado hacer algo así, es la primera vez que lo intento. En cuanto al nombramiento, en vez de colocar "1_", coloco "S_" y podría funcionar?
__________________
Te sirvió mi ayuda? +1 ;D
Andy Aquino - @aquiandres
  #4 (permalink)  
Antiguo 07/01/2012, 18:53
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Renombrar varias tablas MySQL

Estoy de acuerdo con gnzsoloyo, es una operación delicada que debes hacer con cuidado y solo si tienes los conocimientos técnicos para recuperar el estado de la base en caso de problemas. Dicho esto, si es mucho trabajo renombrar las tablas una por una, puedes hacer una consulta que genere los alter table y después ejecutarlos todos juntos como si fuese un script.

Código:
select 
 concat('alter table ',table_name, ' rename ',table_name, '_S;')
from 
 information_schema.tables
where 
 table_type='BASE TABLE'
 and table_schema='TU_BASE'
Saludos
  #5 (permalink)  
Antiguo 08/01/2012, 07:38
Avatar de andres_aquino  
Fecha de Ingreso: septiembre-2010
Ubicación: $("#place").html("FDW");
Mensajes: 138
Antigüedad: 13 años, 7 meses
Puntos: 24
De acuerdo Respuesta: Renombrar varias tablas MySQL

Muchas gracias @matanga, paso a responder apenas hoy. Resulta que la consulta la terminé haciendo una por una tomando las 20 tablas aproximadamente que tengo en la BD; fue algo tedioso y lioso de hacerlo pero terminé haciéndolo y resultó bien. Hasta ahora, siempre me había manejado con consultas sencillas y esta fue la primera vez que tropiezo con algo complicado, con lo que tuve que buscar en varias partes de Internet.

Gracias por el código que me has facilitado, lo tendré muy en cuenta y haré pruebas en local para aprender mejor de su uso y ver si puedo utilizarlo en un futuro sin causar problemas graves.

Saludos
__________________
Te sirvió mi ayuda? +1 ;D
Andy Aquino - @aquiandres

Etiquetas: bd, mysql, renombrar, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:49.