Úvod
DROP TABLE
umožňuje odstranit tabulku z databáze MySQL. Tento příkaz vymaže celou strukturu i obsah tabulky.
Výukový program zkoumá DROP
příkazy a zobrazuje možnostipro odstranění tabulek z databází MySQL .

Předpoklady
- Přístup k oknu terminálu/příkazovému řádku
- Systém běžící na MySQL
- Pracovní nebo testovací databáze
- Uživatel MySQL s nezbytnými oprávněními (vyžadována oprávnění DROP)
DROP TABLE Syntaxe příkazu MySQL
Chcete-li odstranit tabulku v MySQL, použijte DROP TABLE
prohlášení. Základní syntaxe příkazu je následující:
DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name] [RESTRICT | CASCADE];
Pojďme si rozebrat syntaxi:
DROP TABLE
příkaz trvale odstraní tabulku a její řádky.[TEMPORARY]
volba zajišťuje, že odstraníte pouze dočasné tabulky.[IF EXISTS]
volba zahodí tabulku, pouze pokud existuje.[RESTRICT]
Tato možnost bude dostupná v budoucích iteracích MySQL. Zajišťuje, že nadřazený řádek nebude odstraněn, pokud podřízený řádek odkazuje na hodnotu v uvedeném nadřazeném řádku.[CASCADE]
Tato volba zajišťuje, že když odstraníte řádek, budou odstraněny také všechny řádky v souvisejících tabulkách, které na daný řádek odkazují. Tato možnost bude dostupná v budoucích iteracích MySQL.
K odstranění tabulky použijte příkaz DROP
Chcete-li trvale odstranit tabulku, zadejte do prostředí MySQL následující příkaz:
DROP TABLE table1;
Nahraďte table1
s názvem tabulky, kterou chcete smazat. Výstup potvrdí, že tabulka byla odstraněna.

K odstranění pouze existujících tabulek použijte DROP
MySQL generuje chybu, pokud se pokusíte zrušit tabulku, která neexistuje. To může být problém při zahrnutí DROP
příkaz v předdefinovaném skriptu.

Chcete-li nejprve zkontrolovat MySQL, zda tabulka existuje:
DROP TABLE IF EXISTS table1;
IF EXISTS
volba generuje varování, pokud table1
neexistuje.

Použití této možnosti zabrání tomu, aby se skript zasekl při chybě. Zobrazte varování zadáním:
SHOW WARNINGS;

Jak zrušit více tabulek
Chcete-li zrušit více tabulek jedním DROP
prohlášení:
DROP TABLE IF EXISTS table1, table2, table3;
IF EXISTS
volba zobrazí jedno varování jako table1
neexistuje.

Jak zrušit dočasnou tabulku
Dočasné tabulky se používají ke generování a ukládání datové sady krátce před jejím použitím.
Můžete se například rozhodnout uložit výsledky SELECT
příkaz s více příkazy JOIN v dočasné tabulce. Dále snadno dotazujte dočasnou tabulku.
Chcete-li odebrat dočasné tabulky bez rizika ztráty běžných tabulek, použijte TEMPORARY
možnost:
DROP TEMPORARY TABLE IF EXISTS table4;

Jak zrušit tabulky na základě řetězců znaků
MySQL nemá vestavěný příkaz k odstranění tabulek, které odpovídají řetězci znaků. Místo toho použijte skript, který vám pomůže provést tento úkol.
1. Definujte databázi a řetězec znaků, které chcete filtrovat:
set @schema = 'tableselection';
set @string = 'table%';
Nahraďte tableselection
s názvem vaší databáze. Nahraďte table%
s řetězcem znaků, které chcete vybrat a odstranit. Nezapomeňte ponechat %
zástupný znak na konci.
2. Vytvořte příkaz MySQL, který vybere všechny tabulky, které odpovídají řetězci znaků:
SELECT CONCAT ('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
INTO @droptool
FROM information_schema.tables
WHERE @schema = database()
AND table_name LIKE @string;
Tento kód vybere všechny tabulky s table%
znaky zadané z information_schema
stůl. Poté je zřetězí a provede DROP
prohlášení proti skupině.
3. Vytvořte výběr z výsledků tohoto kódu:
SELECT @droptool;
4. Zobrazte obsah příkazu:
PREPARE stmt FROM @droptool;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Kód v níže uvedené sekci je pro snadné použití uveden jako celek:
set @schema = 'tableselection';
set @string = 'table%';
SELECT CONCAT ('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
INTO @droptool
FROM information_schema.tables
WHERE @schema = database()
AND table_name LIKE @string;
SELECT @droptool;
PREPARE stmt FROM @droptool;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;