Autor Tema: eliminar las tablas de una base de datos mysql con un mismo prefijo  (Leído 8119 veces)

foxternoster

  • Sin experiencia
  • *
  • Mensajes: 42
    • Ver Perfil
saludos a todos estoy intentando borrar de golpe todas las tablas de una base de datos mysql que tienen un mismo prefijo pero no encuentro la forma de hacerlo

Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:eliminar las tablas de una base de datos mysql con un mismo prefijo
« Respuesta #1 en: 10 de Junio 2013, 00:20 »
¿todas las tablas de la base de datos tienen el mismo prefijo?

foxternoster

  • Sin experiencia
  • *
  • Mensajes: 42
    • Ver Perfil
Re:eliminar las tablas de una base de datos mysql con un mismo prefijo
« Respuesta #2 en: 13 de Junio 2013, 11:06 »
No, la base de datos tiene tablas con varios prefijos, por ejemplo:

hum_users
hum_servers
hum_logics
...

poldat_users
poldat_servers
poldat_logics
...
etc.

Lo que quiero es eliminar las que tienen un prefijo concreto pero manteniendo las otras sin afectarlas.

Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:eliminar las tablas de una base de datos mysql con un mismo prefijo
« Respuesta #3 en: 15 de Julio 2013, 10:51 »
Mira para hacer esto puedes hacerlo de la siguiente manera en dos pasos:

Paso 1) Creamos una expresión DROP TABLE con todas las tablas que queremos eliminar.

Paso 2) Ejecutamos la expresión que hemos creado anteriormente

Para llevar a cabo el paso 1 la sintaxis sería la siguiente:

SELECT CONCAT("DROP TABLE ", GROUP_CONCAT(table_name), ";") FROM information_schema.tables
WHERE table_schema = "drupal6" AND table_name LIKE "mysite_%";

Esto lo que hace es recorrer todas las tablas de todas las bases de datos existentes y concatena todos los nombres de tabla de la base de datos drupal6 que comienzan con el prefijo "mysite_". Se genera una sentencia con DROP TABLE al principio y una lista de las tablas que comienzan con mysite_ separadas por comas. El resultado debe ser algo parecido a esto:

DROP TABLE mysite_access,mysite_actions,mysite_actions_aid,mysite_authmap,
mysite_vocabulary,mysite_vocabulary_node_types,mysite_watchdog;

En fin, puede que aparezcan 10, 30 ó 50 tablas, depende de cuántas tablas con ese prefijo haya.

Este resultado es la sentencia a ejecutar. Lo copiamos y vamos a la línea de comandos de MySql y lo ejecutamos. Con esto se ejecuta el borrado de todas las tablas con el mismo prefijo.




foxternoster

  • Sin experiencia
  • *
  • Mensajes: 42
    • Ver Perfil
Re:eliminar las tablas de una base de datos mysql con un mismo prefijo
« Respuesta #4 en: 17 de Julio 2013, 10:20 »
Gracias, ha ido bien aunque me extraña que no haya una forma más directa de hacerlo pero lo importante es que funciona bien asi agradecido

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".