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!