DROP TABLE (Suomi)

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ä log VÄLIAIKAINEN. Nämä pudotukset kirjataan vain ajettaessa statement – tai mixed mode-replikaatiota.,
  • Yksi DROP TABLE lausunto voi olla kirjautuneena enintään 3 eri POISTA 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.

Leave a Comment