Nogle gange skal du muligvis slette tabel fra databasen i MySQL. Du kan nemt gøre dette ved at bruge MySQL DROP TABLE-kommandoen. Sådan dropper du tabel i MySQL.
Sådan dropper du tabel i MySQL
Her er trinene til at droppe tabel i MySQL. Vi vil bruge MySQL DROP TABLE-sætningen til at fjerne eksisterende tabeller i en database.
Her er syntaksen for DROP TABLE-sætningen:
DROP [MIDLERTIDIG] TABEL [HVIS FINDER] tabelnavn [, tabelnavn] ...[BEGRÆNSNING | CASCADE]
DROP TABLE-sætningen kan bruges til at fjerne en eller flere databasetabeller.
MIDLERTIDIG søgeord vil kun slette midlertidige tabeller og forhindre sletning af ikke-midlertidige tabeller.
IF EXISTS søgeord vil kun slette en tabel, hvis den eksisterer.
Bemærk venligst, for at kunne slette en MySQL-tabel skal du have DROP TABLE-rettigheder.
Bonus Læs:Sådan får du rekord fra i dag i MySQL
MySQL DROP TABLE for at slette enkelt tabel
Lad os sige, at du har følgende tabel.
mysql> opret tabelordrer (ordre_date date, sale int);
Her er MySQL DROP TABLE-sætningen for at slette denne tabel.
mysql> DROP TABLE ordrer;
Hvis du forsøger at slette en ikke-eksisterende tabel, vil du få en advarsel:
mysql> drop table orders;FEJL 1051 (42S02):Ukendt tabel 'sample.orders'
Bonus Læs:Sådan får du den første post i hver gruppe i MySQL
MySQL Drop flere tabeller
Hvis du har flere tabeller tabel1, tabel2, tabel3 i samme database, så er her MySQL DROP TABLE-sætningen til at slette dem
mysql> SLIP TABLE tabel1, tabel2, tabel3;
Bonus Læs:Sådan opretter du MySQL View
MySQL DROP TABLE matchende mønster
Hvis du har flere databasetabeller, og du ønsker at slette tabeller, der matcher et bestemt mønster, såsom "ordre", kan du ikke direkte bruge MySQL DROP TABLE-sætning til det. F.eks. VIRKER følgende kommando IKKE.
mysql> SLIP TABEL som 'ordre%';
Så vi bliver nødt til at bruge en løsning. Lad os sige, at du har tabeller ordrer1, ordrer2, ordre3 i din database.
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);
Først opretter vi en dynamisk SQL-forespørgselsstreng med tabelnavne i den
SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')INTO @droplikeFROM information_schema.tablesWHERE @schema =database()AND table_name LIKE @pattern;Ovenstående forespørgsel instruerer MySQL om at hente tabelnavne, der matcher dit påkrævede mønster @pattern(f.eks. ordre%) fra informationsskema-tabel, der indeholder en liste over alle tabelnavne i din database @skema (f.eks. eksempel), og sammenkæde dem med 'DROP TABLE' . Vi bruger GROUP_CONCAT til at oprette en kommasepareret liste over tabelnavne.
Vi gemmer denne forespørgsel i @droplike variabel.
Dernæst sætter vi værdier til @pattern og @schema variabler og kører forberedte sætninger oprettet fra @droplike variabel.
mysql> SET @schema ='sample';mysql> SET @pattern ='ordre%';mysql> SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@skema,'.',tabel_navn)),';') INTO @droplike FRA information_schema.tables WHERE @schema =database() OG tabelnavn LIKE @pattern;mysql> vælg @droplike;+--------------------------- ------------------------------------------+| @droplike |+----------------------------------------------------- ---------------+| DROP TABLE sample.orders1, sample.orders2, sample.orders3; |+------------------------------------------------ -------------+PREPARE stmt FROM @droplike;EXECUTE stmt;DEALLOCATE PREPARE stmt;
MySQL DROP Alle tabeller
På samme måde kan du droppe alle tabeller i din database. Bare fjern OG tabelnavn LIKE @mønster fra vælg udsagn i @droplike ovenfor
SET @schema ='sample';SELECT CONCAT('DROP TABLE IF EXISTS',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';') INTO @droplike FRA information_schema.tables WHERE @skema =database();
Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!