Czasami może być konieczne usunięcie tabeli z bazy danych w MySQL. Możesz to łatwo zrobić za pomocą polecenia MySQL DROP TABLE. Oto jak usunąć tabelę w MySQL.
Jak usunąć tabelę w MySQL
Oto kroki, aby usunąć tabelę w MySQL. Użyjemy instrukcji MySQL DROP TABLE, aby usunąć istniejące tabele w bazie danych.
Oto składnia instrukcji DROP TABLE:
DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name] ... [RESTRICT | CASCADE]
Instrukcja DROP TABLE może być użyta do usunięcia jednej lub więcej tabel bazy danych.
Słowo kluczowe TEMPORARY usunie tylko tabele tymczasowe i zapobiegnie usuwaniu tabel innych niż tymczasowe.
Słowo kluczowe IF EXISTS usunie tabelę tylko wtedy, gdy istnieje.
Pamiętaj, że aby móc usunąć tabelę MySQL, musisz mieć uprawnienia DROP TABLE.
Bonus Przeczytaj:Jak uzyskać zapis z dzisiaj w MySQL
MySQL DROP TABLE, aby usunąć pojedynczą tabelę
Załóżmy, że masz poniższą tabelę.
mysql> create table orders(order_date date, sale int);
Oto instrukcja MySQL DROP TABLE, aby usunąć tę tabelę.
mysql> DROP TABLE orders;
Jeśli spróbujesz usunąć nieistniejącą tabelę, otrzymasz ostrzeżenie:
mysql> drop table orders; ERROR 1051 (42S02): Unknown table 'sample.orders'
Przeczytaj bonus:Jak zdobyć pierwszy rekord w każdej grupie w MySQL
MySQL Upuść wiele tabel
Jeśli masz wiele tabel table1, table2, table3 w tej samej bazie danych, oto instrukcja MySQL DROP TABLE, aby je usunąć
mysql> DROP TABLE table1, table2, table3;
Przeczytaj bonus:Jak stworzyć widok MySQL
Wzorzec dopasowania MySQL DROP TABLE
Jeśli masz wiele tabel bazy danych i chcesz usunąć tabele pasujące do określonego wzorca, takiego jak „zamówienie”, nie możesz bezpośrednio użyć do tego instrukcji MySQL DROP TABLE. Na przykład następujące polecenie NIE BĘDZIE DZIAŁAŁO.
mysql> DROP TABLE like 'order%';
Więc będziemy musieli obejść się. Załóżmy, że w swojej bazie danych masz tabele order1, order2, order3.
mysql> create table orders1(order_date date, sale int); mysql> create table orders2(order_date date, sale int); mysql> create table orders3(order_date date, sale int);
Najpierw tworzymy dynamiczny ciąg zapytania SQL z nazwami tabel
SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';') INTO @droplike FROM information_schema.tables WHERE @schema = database() AND table_name LIKE @pattern;
Powyższe zapytanie instruuje MySQL, aby pobrać nazwy tabel pasujące do wymaganego wzorca @pattern(np. order%) z tabeli information_schema, która zawiera listę wszystkich nazw tabel w Twojej bazie danych @schema (np. przykład) i połączyć je z 'DROP TABLE' . Używamy GROUP_CONCAT do tworzenia listy oddzielonych przecinkami nazw tabel.
Przechowujemy to zapytanie w zmiennej @droplike.
Następnie ustawiamy wartości na zmienne @pattern i @schema i uruchamiamy przygotowane instrukcje utworzone ze zmiennej @droplike.
mysql> SET @schema = 'sample'; mysql> SET @pattern = 'order%'; mysql> SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';') INTO @droplike FROM information_schema.tables WHERE @schema = database() AND table_name LIKE @pattern; mysql> select @droplike; +-------------------------------------------------------------+ | @droplike | +-------------------------------------------------------------+ | DROP TABLE sample.orders1,sample.orders2,sample.orders3; | +-------------------------------------------------------------+ PREPARE stmt FROM @droplike; EXECUTE stmt; DEALLOCATE PREPARE stmt;
MySQL DROP Wszystkie tabele
Podobnie możesz usunąć wszystkie tabele z bazy danych. Po prostu usuń ORAZ nazwa_tabeli LIKE @wzór z instrukcji select w @droplike powyżej
SET @schema = 'sample'; SELECT CONCAT('DROP TABLE IF EXISTS',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';') INTO @droplike FROM information_schema.tables WHERE @schema = database();
Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!