mysql

Eliminar todas las tablas de una base de datos de MySQL

En este post veremos cómo eliminar todas las tablas de una base de datos en MySQL. Estos comandos también deberían funcionar correctamente en MariaDB.

Vamos a ver más de una forma de vaciar una base de datos; porque en algunos casos no tenemos permisos para realizar determinada acción (por ejemplo, crear y eliminar bases de datos) o no queremos tocar otra estructura de la base de datos, sino únicamente quitar las tablas.

Antes de todo, una introducción

Mira cómo administrar MySQL desde la CLI con este tutorial, o mira más cosas sobre MySQL, SQL y Bases de datos.

La forma más fácil de eliminar todas las tablas: eliminar y crear base de datos

La forma más fácil es la de eliminar la base de datos (junto con todo su contenido) y luego simplemente volver a crear la base de datos. Se lograría con lo siguiente:

drop database base_de_datos;
create database base_de_datos;

En ese caso se elimina la base de datos llamada base_de_datos. De esta manera podrían eliminarse todas las tablas.

Lo necesario para esto es tener permiso de crear y eliminar una base de datos; si no, entonces será imposible. En caso de que sólo tengas permisos para administrar tablas, sigue leyendo.

Eliminar todas las tablas, una por una

El comando para eliminar una tabla, es:

drop table el_nombre_de_la_tabla;

Pero adicionalmente se pueden agregar más nombres de tablas. Así:

drop table una_tabla, otra_tabla, una_mas;

De esa manera se pueden eliminar las tablas que quieras. Eso sí,  tienes que escribir el nombre de todas las tablas.

En caso de que tengas problemas con las relaciones y claves foráneas, antes de ejecutar la consulta desactiva el chequeo con:

SET FOREIGN_KEY_CHECKS = 0;

Y luego de eliminar las tablas, actívalo de nuevo con:

SET FOREIGN_KEY_CHECKS = 1;

Un comando de ejemplo es este, el cual elimina todas las tablas de la base de datos llamada ventas:

SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE productos, usuarios, productos_vendidos, ventas;
SET FOREIGN_KEY_CHECKS = 1;

Nota: recuerda que primero debes seleccionar una base de datos con use ventas; por ejemplo.

Para esto sólo necesitamos tener permiso de modificar tablas, no de modificar bases de datos así que puede que funcione mejor.

Aquí un ejemplo real:

Eliminar y vaciar tablas de una base de datos de MySQL

Si tus tablas son demasiadas, no sabes el nombre de todas o simplemente quieres ahorrarte escribir el nombre de todas, sigue leyendo.

Otro comando para eliminar las tablas

La siguiente consulta fue tomada de una respuesta en stack overflow. Lo que hace es eliminar todas las tablas sin importar cuántas sean, esto lo hace consultando las tablas existentes y luego concatenándolas. Para ejemplificar, una consulta que elimina todas las tablas de la base de datos ventas es la siguiente:

/*
  Tomado de: https://stackoverflow.com/a/18625545/5032550
*/SET FOREIGN_KEY_CHECKS = 0;
SET GROUP_CONCAT_MAX_LEN=32768;
SET @tables = NULL;
SELECT GROUP_CONCAT('`', table_name, '`') INTO @tables
  FROM information_schema.tables
  WHERE table_schema = (SELECT DATABASE());
SELECT IFNULL(@tables,'dummy') INTO @tables;

SET @tables = CONCAT('DROP TABLE IF EXISTS ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET FOREIGN_KEY_CHECKS = 1;

Recuerda tener seleccionada una base de datos antes de ejecutar esa consulta. De esta manera se pueden eliminar todas las tablas, sin importar el número de las mismas (bueno, mientras al concatenarlas no sumen más de 32768 caracteres, pero eso es otra historia).

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

9 horas hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

1 día hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

7 días hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.