DROP TABLE (Magyar)

Syntax

DROP TABLE tbl_name ... 

leírás

DROP TABLE eltávolít egy vagy több táblát. Meg kell adni aDROP privilegefor minden táblázatban. Minden táblázat adatait, valamint a táblázat meghatározása eltávolítjuk, valamint kiváltó kapcsolódó táblázat, így becareful ezzel a kijelentéssel! Ha az argumentumlistában megnevezett táblák bármelyike létezik, a MariaDB hibát ad vissza, amely név szerint jelzi, hogy melyik nem létező tablesit nem tudott leesni, de a listában szereplő összes táblát is eldobja doexist.,

fontos: ha egy asztal leesik, a felhasználói jogosultságok az asztalon nem automatikusan csökkennek. Lásd Grantet.

Ha egy másik szál explicit tranzakcióban vagy autocommit tranzakcióban használja a táblát, akkor a szál metaadatzárat (MDL) szerez az asztalon. ADROP TABLE utasítás a “táblázat metaadatok zárolásának várakozása” szálállapotban vár, amíg az MDL fel nem szabadul. Az MDL-eket a következő esetekben szabadítják fel:

  • ha EGY MDL-t egy explicit tranzakcióban szereznek meg, akkor az MDL felszabadul, amikor a tranzakció befejeződik.,
  • ha EGY MDL-t egy autocommit tranzakcióban szereznek be, akkor az MDL-t a nyilatkozat végén szabadítják fel.
  • a tranzakciós és nem tranzakciós táblázatok kezelése azonos.

vegye figyelembe, hogy egy particionált tábla esetén a DROP TABLE véglegesen eltávolítja a tabledefinition-t, annak összes partícióját, valamint az összes adatot, amelyet a partíciókban tároltak. Azt is eltávolítja a particionálás meghatározása (.par) fileassociated with the droped table.

minden hivatkozott táblázat esetében DROP TABLE egy ideiglenes táblát dob le ezzel a névvel, ha létezik., Ha nem létezik, és a TEMPORARY kulcsszót nem használják, akkor egy nem ideiglenes táblát dob le ugyanazzal a névvel, ha létezik. A TEMPORARY kulcsszó biztosítja, hogy egy nem ideiglenes tábla véletlenül ne essen le.

használja aIF EXISTS elemet, hogy megakadályozza a hiba előfordulását olyan tábláknál, amelyek nem léteznek. A NOTEminden nem létező tábláhozIF EXISTS használata esetén keletkezik. Lásd: figyelmeztetések megjelenítése.

Ha egy idegen kulcs hivatkozik erre a táblázatra, a táblázat nem dobható le., Ebben az esetben először le kell dobni az idegen kulcsot.

RESTRICT és CASCADE megkönnyítik a portolást más adatbázis-rendszerekből. MariaDB-ban semmit sem csinálnak.

a táblázat neve előtti megjegyzés (/*COMMENT TO SAVE*/) a bináris naplóban tárolódik. Ezt a funkciót replikációs eszközökkel lehet használni belső üzenetek küldésére.

lehetőség van a táblanevek megadására db_name.tab_name. Ez hasznos lehet A táblázatok törlése több adatbázisból egy nyilatkozattal., A részleteket lásd az azonosító selejtezők című részben.

aDROP TABLE nem ideiglenes táblákon történő használatához a DROP jogosultság szükséges. Az ideiglenes táblázatok esetében nincs szükség kiváltságra, mivel ezek a táblázatok csak az aktuális munkamenethez láthatók.

Megjegyzés: DROP TABLE automatikusan végrehajtja az aktuális aktív tranzakciót,kivéve, ha a TEMPORARY kulcsszót használja.

MariaDB kezdve 10.5.4

MariaDB 10.5.,4, DROP TABLEmegbízhatóan törli az asztalmaradványokat egy tárolómotorban, még akkor is, ha a .frm fájl hiányzik. Ezt megelőzően egy hiányzó .frm fájl a nyilatkozat kudarcát eredményezné.

MariaDB kezdve 10.3.1

várjon / NOWAIT

állítsa be a zár várakozási időtúllépést. Várj és most.

DROP TABLE a következő jellemzőkkel rendelkezik a replikációban:

  • DROP TABLE ha létezik mindig be van jelentkezve.,
  • DROP TABLE nélkül ha létezik táblázatok, amelyek nem léteznek, nem írt a bináris napló.
  • ideiglenes táblázatok előtagja a naplóban ideiglenes. Ezek a cseppek csak akkor kerülnek naplózásra, ha utasítás vagy vegyes módú replikáció fut.,

  • Egy DROP TABLE nyilatkozatot is be akár 3 különböző CSEPP mondatok:
    • CSEPP IDEIGLENES TÁBLÁZAT list_of_non_transactional_temporary_tables
    • CSEPP IDEIGLENES TÁBLÁZAT list_of_transactional_temporary_tables
    • DROP TABLE list_of_normal_tables

Kezdve a MariaDB 10.0.,8, DROP TABLE a mester kezelik a slave mint DROP TABLE ha létezik. Meg lehet változtatni, hogy a Beállítás slave-ddl-exec-mód szigorú.

egy belső #sql-leejtése… Táblázat

Ha a mysqld folyamat egy ALTER tábla során elpusztul, előfordulhat, hogy egy #sql-nevű táblát talál… az adatkönyvtárban. A MariaDB 10.3-ban az előtaggal rendelkező InnoDB táblázatok automatikusan törlődnek startup.In MariaDB 10.4 biztosítani fogjuk, hogy ezek az ideiglenes táblák mindig automatikusan törlődjenek.,

ha ezen táblázatok egyikét kifejezetten törölni szeretné, akkor ezt a következő szintaxis használatával teheti meg:

DROP TABLE `#mysql50##sql-...`;

ALTER TABLE…ALGORITHM=INPLACE a táblát újjáépítő InnoDB létrehoz egy belső #sql-ib táblázatot. Ezeknél a táblázatoknál a .frm fájlt valami másnak nevezik. Annak érdekében, hogy egy ilyen táblát egy szerver összeomlása után le lehessen dobni, át kell neveznie a #sql*.frm fájlt, hogy megfeleljen a #sql-ib*.ibd fájlnak.,

az összes tábla dobása egy adatbázisban

az összes tábla dobásának legjobb módja a DROP DATABASE végrehajtása, amely maga az adatbázist, valamint az összes táblát eldobja.

azonban, ha azt szeretnénk, hogy dobja az összes táblát az adatbázisban, de azt is szeretné, hogy az adatbázis maga, valamint bármely más nem-tábla objektumok benne, akkor meg kell végrehajtani DROP TABLE hogy dobja az egyes táblázatban. Ezeket a DROP TABLE parancsokat a TABLES táblázat lekérdezésével állíthatja össze a information_schema adatbázisban., Például:

SELECT CONCAT('DROP TABLE IF EXISTS `', TABLE_SCHEMA, '`.`', TABLE_NAME, '`;')FROM information_schema.TABLESWHERE TABLE_SCHEMA = 'mydb';

példák

DROP TABLE Employees, Customers;

Megjegyzések

ügyeljen arra, hogy a DROP TABLE mind a táblázatokat, mind a sorozatokat eldobhatja. Ez elsősorban azért történik, hogy a régi eszközök, mint a mysqldump dolgozni szekvenciák.

Lásd még:

  • Táblázat létrehozása
  • ALTER TABLE
  • Táblázat létrehozása
  • DROP SEQUENCE
  • változó slave-DDL-exec-mode.

Leave a Comment