sql >> Databáze >  >> RDS >> Mysql

DROP TABLE MySQL

Někdy může být nutné odstranit tabulku z databáze v MySQL. Můžete to snadno provést pomocí příkazu MySQL DROP TABLE. Zde je návod, jak zrušit tabulku v MySQL.

Jak zrušit tabulku v MySQL

Zde jsou kroky k odstranění tabulky v MySQL. K odstranění existujících tabulek v databázi použijeme příkaz MySQL DROP TABLE.

Zde je syntaxe příkazu DROP TABLE:

DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name] ...[RESTRICT | CASCADE]

Příkaz DROP TABLE lze použít k odstranění jedné nebo více databázových tabulek.

Klíčové slovo TEMPORARY smaže pouze dočasné tabulky a zabrání smazání nedočasných tabulek.

Klíčové slovo IF EXISTS zruší tabulku pouze v případě, že existuje.

Upozorňujeme, že abyste mohli smazat tabulku MySQL, musíte mít oprávnění DROP TABLE.

Bonusové čtení:Jak získat záznam ode dneška v MySQL

MySQL DROP TABLE pro smazání jedné tabulky

Řekněme, že máte následující tabulku.

mysql> vytvořit tabulku objednávek (datum_objednávky, int prodeje);

Zde je příkaz MySQL DROP TABLE pro odstranění této tabulky.

mysql> DROP TABLE objednávky;

Pokud se pokusíte odstranit neexistující tabulku, zobrazí se varování:

mysql> zrušit objednávky tabulky;CHYBA 1051 (42S02):Neznámá tabulka 'sample.orders'

Bonusové čtení:Jak získat první záznam v každé skupině v MySQL

MySQL Drop více tabulek

Pokud máte ve stejné databázi více tabulek table1, table2, table3, pak je zde příkaz MySQL DROP TABLE k jejich odstranění

mysql> DROP TABLE tabulka1, tabulka2, tabulka3;

Bonusové čtení:Jak vytvořit zobrazení MySQL

MySQL DROP TABLE odpovídající vzor

Pokud máte více databázových tabulek a chcete smazat tabulky odpovídající určitému vzoru, jako je „objednávka“, nemůžete pro to přímo použít příkaz DROP TABLE MySQL. Například následující příkaz NEBUDE FUNGOVAT.

mysql> DROP TABLE jako 'order%';

Takže budeme muset použít work around. Řekněme, že máte v databázi tabulky orders1, orders2, order3.

mysql> vytvořit tabulku orders1(order_date date, sale int);mysql> create table orders2(order_date date, sale int);mysql> create table orders3(order_date date, sale int);

Nejprve vytvoříme dynamický řetězec SQL dotazu s názvy tabulek

SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schéma,'.',název_tabulky)),';')INTO @droplikeFROM information_schema.tablesWHERE @schema =databáze()AND název_tabulky LIKE @vzor; 

Výše uvedený dotaz dává MySQL pokyn, aby načetla názvy tabulek odpovídající vašemu požadovanému vzoru @vzor (např. objednávka %) z tabulky information_schema, která obsahuje seznam všech názvů tabulek ve vaší databázi @schéma (např. ukázka), a spojila je s 'DROP TABLE' . GROUP_CONCAT používáme k vytvoření seznamu názvů tabulek oddělených čárkami.

Tento dotaz uložíme do proměnné @droplike.

Dále nastavíme hodnoty proměnným @pattern a @schema a spustíme připravené příkazy vytvořené z proměnné @droplike.

mysql> SET @schema ='sample';mysql> SET @pattern ='order%';mysql> SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',název_tabulky)),';') DO @droplike FROM information_schema.tables WHERE @schema =database() AND table_name LIKE @pattern;mysql> select @droplike;+-------------------- ------------------------------------------+| @droplike |+---------------------------------------------- ---------------+| DROP TABLE vzorek.objednávky1,ukázkové.objednávky2,ukázkové.objednávky3; |+------------------------------------------------ -------------+PŘIPRAVIT OD OD @droplike;EXECUTE stmt;DEALOKOVAT PŘÍPRAVU stmt;

MySQL DROP All Tables

Podobně můžete zrušit všechny tabulky v databázi. Stačí odstranit A název_tabulky LIKE @pattern z příkazu select v @droplike výše

SET @schema ='sample';SELECT CONCAT('DROP TABLE IF EXISTS',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';') INTO @droplike FROM information_schema.tables WHERE @schema =databáze();

Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!

  1. Proč je používání jednotkových testů skvělou investicí do vysoce kvalitní architektury

  2. Spouštěče MySQL nemohou aktualizovat řádky ve stejné tabulce, ke které je spouštěč přiřazen. Navrhované řešení?

  3. Oracle SQL GROUP BY není nápověda k výrazu GROUP BY

  4. Použití Jquery Ajax k načtení dat z Mysql