sql >> Database >  >> RDS >> Mysql

MySQL DROP-TABEL

Soms moet u de tabel uit de database in MySQL verwijderen. U kunt dit eenvoudig doen met de opdracht MySQL DROP TABLE. Hier leest u hoe u een tabel in MySQL kunt neerzetten.

Tabel neerzetten in MySQL

Hier zijn de stappen om de tabel in MySQL te laten vallen. We zullen de MySQL DROP TABLE-instructie gebruiken om bestaande tabellen in een database te verwijderen.

Dit is de syntaxis van de DROP TABLE-instructie:

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

De DROP TABLE-instructie kan worden gebruikt voor het verwijderen van een of meer databasetabellen.

TIJDELIJK sleutelwoord verwijdert alleen tijdelijke tabellen en voorkomt het verwijderen van niet-tijdelijke tabellen.

IF EXISTS-zoekwoord zal alleen een tabel laten vallen als deze bestaat.

Let op:om een ​​MySQL-tabel te kunnen verwijderen, moet u DROP TABLE-rechten hebben.

Bonus lezen:hoe u vanaf vandaag een record kunt krijgen in MySQL

MySQL DROP TABLE om enkele tabel te verwijderen

Stel dat u de volgende tabel heeft.

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

Hier is de MySQL DROP TABLE-instructie om deze tabel te verwijderen.

mysql> DROP TABLE orders;

Als u een niet-bestaande tabel probeert te verwijderen, krijgt u een waarschuwing:

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

Bonus lezen:hoe u het eerste record in elke groep in MySQL kunt krijgen

MySQL Zet meerdere tabellen neer

Als je meerdere tabellen table1, table2, table3 in dezelfde database hebt, dan is hier de MySQL DROP TABLE-instructie om ze te verwijderen

mysql> DROP TABLE table1, table2, table3;

Bonus lezen:MySQL-weergave maken

MySQL DROP TABLE overeenkomend patroon

Als u meerdere databasetabellen heeft en u wilt tabellen verwijderen die overeenkomen met een bepaald patroon, zoals "order", dan kunt u de MySQL DROP TABLE-instructie er niet rechtstreeks voor gebruiken. Het volgende commando WERKT bijvoorbeeld NIET.

mysql> DROP TABLE like 'order%';

We zullen dus een work around moeten gebruiken. Stel dat u tabellen orders1, orders2, order3 in uw database heeft.

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);

Eerst maken we een dynamische SQL-querystring met tabelnamen erin

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

De bovenstaande query geeft MySQL de opdracht om tabelnamen op te halen die overeenkomen met uw vereiste patroon @pattern(e.g. order%) uit information_schema table, die een lijst bevat van alle tabelnamen in uw database @schema (bijv. sample), en deze samen te voegen met 'DROP TABLE' . We gebruiken GROUP_CONCAT om een ​​door komma's gescheiden lijst met tabelnamen te maken.

We slaan deze zoekopdracht op in de variabele @droplike.

Vervolgens stellen we waarden in op @pattern- en @schema-variabelen en voeren we voorbereide instructies uit die zijn gemaakt op basis van @droplike-variabele.

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 Alle tabellen

Op dezelfde manier kunt u alle tabellen in uw database laten vallen. Verwijder gewoon AND table_name LIKE @pattern van select statement in @droplike hierboven

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 maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!

  1. Docker-container voor Postgres 9.1 stelt poort 5432 niet bloot aan host

  2. Hoe een array te maken in PostgreSQL

  3. Probleem met invoegquery in Sqlite? (variabele invoegen)

  4. DDL-scripts genereren (maken) vanuit SQL Server Management Studio (SSMS) - SQL Server / TSQL-zelfstudie, deel 17