sql >> Base de Datos >  >> RDS >> Mysql

TABLA DE BOTA MySQL

A veces, es posible que deba eliminar la tabla de la base de datos en MySQL. Puede hacer esto fácilmente usando el comando MySQL DROP TABLE. A continuación se explica cómo colocar una tabla en MySQL.

Cómo soltar una tabla en MySQL

Estos son los pasos para eliminar la tabla en MySQL. Usaremos la instrucción MySQL DROP TABLE para eliminar las tablas existentes en una base de datos.

Esta es la sintaxis de la sentencia DROP TABLE:

DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name] ...
[RESTRICT | CASCADE]

La instrucción DROP TABLE se puede usar para eliminar una o más tablas de la base de datos.

La palabra clave TEMPORARY eliminará solo las tablas temporales y evitará la eliminación de las tablas no temporales.

La palabra clave IF EXISTS eliminará una tabla solo si existe.

Tenga en cuenta que para poder eliminar una tabla MySQL, debe tener privilegios DROP TABLE.

Lectura adicional:cómo obtener un registro a partir de hoy en MySQL

MySQL DROP TABLE para eliminar una sola tabla

Digamos que tienes la siguiente tabla.

mysql> create table orders(order_date date, sale int);

Aquí está la instrucción MySQL DROP TABLE para eliminar esta tabla.

mysql> DROP TABLE orders;

Si intenta eliminar una tabla que no existe, recibirá una advertencia:

mysql> drop table orders;
ERROR 1051 (42S02): Unknown table 'sample.orders'

Lectura adicional:cómo obtener el primer registro en cada grupo en MySQL

MySQL Soltar varias tablas

Si tiene varias tablas table1, table2, table3 en la misma base de datos, aquí está la instrucción MySQL DROP TABLE para eliminarlas

mysql> DROP TABLE table1, table2, table3;

Lectura adicional:Cómo crear una vista MySQL

Patrón coincidente de MySQL DROP TABLE

Si tiene varias tablas de base de datos y desea eliminar tablas que coincidan con un patrón particular, como "orden", entonces no puede usar directamente la declaración MySQL DROP TABLE para ello. Por ejemplo, el siguiente comando NO FUNCIONARÁ.

mysql> DROP TABLE like 'order%';

Así que tendremos que usar una solución alternativa. Digamos que tiene las tablas pedidos1, pedidos2, pedido3 en su base de datos.

mysql> create table orders1(order_date date, sale int);

mysql> create table orders2(order_date date, sale int);

mysql> create table orders3(order_date date, sale int);

Primero creamos una cadena de consulta SQL dinámica con nombres de tablas

SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
INTO @droplike
FROM information_schema.tables
WHERE @schema = database()
AND table_name LIKE @pattern;

La consulta anterior le indica a MySQL que busque los nombres de las tablas que coincidan con su patrón requerido @pattern (por ejemplo, order%) de la tabla information_schema, que contiene una lista de todos los nombres de tablas en su base de datos @schema (por ejemplo, muestra), y los concatena con 'DROP TABLE' . Usamos GROUP_CONCAT para crear una lista de nombres de tablas separados por comas.

Almacenamos esta consulta en la variable @droplike.

A continuación, establecemos valores para las variables @pattern y @schema, y ​​ejecutamos declaraciones preparadas creadas a partir de la variable @droplike.

mysql> SET @schema = 'sample';

mysql> SET @pattern = 'order%';

mysql> SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
     INTO @droplike
     FROM information_schema.tables
     WHERE @schema = database()
     AND table_name LIKE @pattern;

mysql> select @droplike;
+-------------------------------------------------------------+
| @droplike                                                   |
+-------------------------------------------------------------+
| DROP TABLE sample.orders1,sample.orders2,sample.orders3;    |
+-------------------------------------------------------------+

PREPARE stmt FROM @droplike;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

MySQL DROP todas las tablas

Del mismo modo, puede eliminar todas las tablas de su base de datos. Simplemente elimine Y table_name LIKE @pattern de la declaración de selección en @droplike arriba

SET @schema = 'sample';
SELECT CONCAT('DROP TABLE IF EXISTS',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
     INTO @droplike
     FROM information_schema.tables
     WHERE @schema = database();

Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!