Saltar al contenido

¿Cómo puedo cambiar los prefijos en todas las tablas de mi base de datos MySQL?

Solución:

La solución zerkms no funcionó para mí. Tuve que especificar el information_schema base de datos para poder consultar el Tables mesa.

SELECT 
    CONCAT('RENAME TABLE ', GROUP_CONCAT('`', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`prefix_', TABLE_NAME, '`')) AS q
FROM 
    `information_schema`.`Tables` WHERE TABLE_SCHEMA='test';

Editar:

Optimizó la consulta para llamar solo a RENAME TABLE una vez. Algo en lo que entré fue en el hecho de que la salida concatenada se truncó en 341 caracteres. Esto se puede resolver (si su servidor lo permite) configurando la variable MySQL group_concat_max_len a un valor más alto:

SET group_concat_max_len = 3072; -- UTF8 assumes each character will take 3 bytes, so 3072/3 = 1024 characters.

escriba un script que ejecutará RENAME TABLE para cada tabla.

SELECT 
  GROUP_CONCAT('RENAME TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`prefix_', TABLE_NAME, '`;' SEPARATOR ' ')
FROM 
  `TABLES` WHERE `TABLE_SCHEMA` = "test";

donde “prueba” es el nombre de la base de datos esperado

después de esto, puede realizar una consulta larga que agregará prefijos si la ejecuta 😉

PhpMyAdmin le permite hacer esto ahora. En el nivel “Base de datos”, seleccione la pestaña Estructura para ver todas las tablas. Haga clic en “comprobar todo” (debajo de la lista de la tabla). En el menú desplegable ‘Con seleccionados’, elija: ‘Reemplazar prefijo de tabla’.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *