Syntax
DROP TABLE tbl_name ...
Kuvaus
DROP TABLE
poistaa yhden tai useamman taulukoita. Sinulla on oltava DROP
privilegefor kunkin taulukon. Kaikki taulukon tiedot ja taulukon määritelmä poistetaan, sekä laukaisee liittyvät taulukkoon, joten beareful tämän lausuman! Jos jokin argumenttiluettelossa donot nimetyistä taulukoista on olemassa, MariaDB palauttaa virheen, joka osoittaa nimeltä, Mitä ei-olemassa olevia taulukoita ei voitu pudottaa, mutta se myös pudottaa kaikki doexist-luettelon taulukot.,
tärkeää: kun pöytä pudotetaan, pöydällä olevia käyttäjäoikeuksia ei pudoteta automaattisesti. Katso Grantia.
Jos toinen lanka on taulukon avulla nimenomaisen tapahtuman tai autocommit-kauppa, sitten lanka hankkii metadata-lukko (MDL) pöydälle. DROP TABLE
lausuma jää odottamaan ”waiting for table metadata lock” – säiettä, kunnes MDL on julkaistu. MDLs on julkaistu seuraavissa tapauksissa:
- Jos MDL on hankittu nimenomainen tapahtuma, niin MDL vapautetaan, kun kauppa päättyy.,
- Jos MDL hankitaan autokommit-kaupassa, MDL julkaistaan, kun selvitys päättyy.
- Kaupallisen ja ei-kaupallisen pöydissä käsitellään samaa.
Huomaa, että on osioitu taulukko, DROP TABLE
pysyvästi poistaa tabledefinition, kaikki sen osiot, ja kaikki tiedot, jotka oli tallennettu näissä osioita. Se poistaa myös osiointimääritelmän (.par) fileassosiated kanssa pudotettu taulukko.
jokaisen viitattu taulukko, DROP TABLE
laskee tilapäinen taulukko, jossa on nimi, jos se on olemassa., Jos sitä ei ole ja TEMPORARY
avainsanaa ei käytetä, se pudottaa samannimisen ei-väliaikaisen taulukon, jos se on olemassa. TEMPORARY
avainsanalla varmistetaan, että ei-tilapäistä taulukkoa ei vahingossa pudoteta.
käytäIF EXISTS
estääksesi virheen syntymisen taulukoissa, jotka eivät ole noteksistisia. NOTE
syntyy jokaista olematonta taulukkoa käytettäessäIF EXISTS
. Katso ESITYSVAROITUKSET.
jos ulkomainen avainviittaus tähän taulukkoon, taulukkoa ei voida pudottaa., Tässä tapauksessa on tarpeen pudottaa ulkomaalainen avain ensin.
RESTRICT
ja CASCADE
saavat tehdä siirto toisista tietokantajärjestelmistä helpompaa. Mariadbissa he eivät tee mitään.
kommentti ennen taulukon nimiä (/*COMMENT TO SAVE*/
) tallennetaan binäärilokiin. Tätä ominaisuutta voidaan käyttää replikointityökaluilla niiden sisäisten viestien lähettämiseen.
on mahdollista määritellä taulukon nimet db_name
.tab_name
. Tämä on hyödyllistä poistaa taulukoita useista tietokannoista yhdellä lausumalla., Lisätietoja on tunnisteiden karsinnoissa.
PUDOTUSOIKEUTTA on käytettäväDROP TABLE
ei-tilapäisissä taulukoissa. Tilapäispöytiin ei tarvita etuoikeutta, koska tällaiset pöydät näkyvät vain nykyisessä istunnossa.
Huomautus: DROP TABLE
automaattisesti sitoutuu nykyinen aktiivinen kauppa,ellet käytä TEMPORARY
avainsana.
MariaDB alkaen 10.5.4
Mariadbista 10.5.,4, DROP TABLE
poistaa pöytäjäänteet luotettavasti varastomoottorin sisältä, vaikka .frm
tiedosto puuttuu. Sitä ennen puuttuva .frm
– tiedosto johtaisi lausuman kaatumiseen.
MariaDB alkaen 10.3.1
WAIT/NOWAIT
asettaa työsulun odotusajan. Odottakaa ja odottakaa.
POISTA TAULUKON replikointi
DROP TABLE
on seuraavat ominaisuudet toistettavuus:
-
DROP TABLE JOS on OLEMASSA
on aina kirjautuneena., -
PUDOTUSTAULUKKO
ilmanjos on
taulukoita, joita ei ole, ei ole kirjoitettu binäärilokiin. - Laskee
VÄLIAIKAINEN
taulukot ovat lakisääteisiä logVÄLIAIKAINEN
. Nämä pudotukset kirjataan vain ajettaessa statement – tai mixed mode-replikaatiota., - Yksi
DROP TABLE
lausunto voi olla kirjautuneena enintään 3 eriPOISTA
lausunnot:PUDOTA TILAPÄINEN TAULUKKO list_of_non_transactional_temporary_tables
PUDOTA TILAPÄINEN TAULUKKO list_of_transactional_temporary_tables
DROP TABLE list_of_normal_tables
Alkaen MariaDB 10.0.,8, pudotustaulukko isännällä käsitellään orjalla
PUDOTUSTAULUKKO, jos on. Voit muuttaa sitä asettamalla slave-ddl-exec-moodin
tiukkaan
.
pudottamalla sisäisen #sql-… Taulukko
Jos mysqld-prosessi kuolee ALTER-pöydän aikana, saatat löytää taulukon nimeltä #sql -… hakemistossasi. Vuonna MariaDB 10.3, InnoDB taulukot tämän etuliitteen poistetaan automaattisesti aikana startup.In MariaDB 10.4 varmistamme, että nämä väliaikaiset taulukot poistetaan aina automaattisesti.,
Jos haluat poistaa yhden näistä taulukoista nimenomaisesti, voit tehdä sen käyttämällä seuraavaa syntaksia:
DROP TABLE `#mysql50##sql-...`;
kun käytät ALTER TABLE…ALGORITHM=INPLACE
että rebuilds taulukko, InnoDB luo sisäisen #sql-ib
taulukon. Näissä taulukoissa .frm
– tiedostoa kutsutaan joksikin muuksi. Jotta pudota tällaisen taulukon jälkeen palvelin kaatuu, sinun täytyy nimetä #sql*.frm
tiedosto ottelu #sql-ib*.ibd
tiedosto.,
Pudottamalla Kaikki Taulukot Tietokantaan
paras tapa pudottaa kaikki taulut tietokantaan on suorittamalla DROP DATABASE
, joka vie tietokantaan itse, ja kaikki pöydät siinä.
Kuitenkin, jos haluat pudottaa kaikki taulut tietokantaan, mutta haluat myös pitää tietokantaa ja muita ei-taulukko esineitä se, sitten sinun täytyy suorittaa DROP TABLE
pudota jokainen yksittäinen taulukko. Voit rakentaa näitä DROP TABLE
komennot kyselemällä TABLES
taulukko information_schema
tietokanta., Esimerkiksi:
SELECT CONCAT('DROP TABLE IF EXISTS `', TABLE_SCHEMA, '`.`', TABLE_NAME, '`;')FROM information_schema.TABLESWHERE TABLE_SCHEMA = 'mydb';
esimerkkejä
DROP TABLE Employees, Customers;
muistiinpanoja
Varo, että DROP TABLE
voi pudottaa sekä taulukoita että sekvenssejä. Tämä tehdään pääasiassa, jotta vanhat työkalut, kuten mysqldump, voivat työskennellä sekvenssien kanssa.
Katso myös
- Luo taulukko
- ALTER TABLE
- Näytä CREATE TABLE
- DROP SEQUENCE
- Variable slave-ddl-exec-mode.