polecenie SQL DROP TABLE umożliwia usunięcie tabeli z bazy danych. Jeśli tabela nie istnieje, próba upuszczenia spowoduje wystąpienie błędu.

polecenie SQL DROP TABLE IF EXISTS umożliwia sprawdzenie, czy tabela istnieje przed próbą upuszczenia (usunięcia) tabeli. Jeżeli tabela nie istnieje, to polecenie DROP TABLE nie jest wykonywane, więc nie występuje błąd.,

składnia

składnia może się nieznacznie różnić w zależności od używanej bazy danych.

SQL Server

DROP TABLE TableName

kropla, JEŚLI ISTNIEJE, jest dostępna tylko od SQL Server 2016.

MySQL

DROP TABLE TableName

tymczasowe słowo kluczowe może być użyte w MySQL do określenia, że tylko tymczasowa tabela może być usunięta.,

przykłady użycia DROP TABLE IF EXISTS

przykład 1 – Usunięcie tabeli przy użyciu DROP TABLE z klauzulą IF EXISTS

przykład 2 – błąd występujący przy użyciu DROP TABLE bez klauzuli IF EXISTS

-- if we attempt to DROP the table that we just created and dropped then we will get an errorDROP TABLE dbo.Country;

zwracany błąd to: nie można upuścić tabeli 'dbo.Kraju”, ponieważ nie istnieje lub nie masz pozwolenia.,

przykład 3 – Używanie z tabelami tymczasowymi w SQL Server

przykład 4 – Używanie z tabelami tymczasowymi w MySQL

-- temp table MySQLCREATE TEMPORARY TABLE Continent( Id INT PRIMARY KEY, Continent varchar(50));DROP TEMPORARY TABLE IF EXISTS Continent;

alternatywne metody upuszczania tabeli z zaznaczeniem istnienia

Możesz użyć INFORMATION_SCHEMA bazy danych, aby wykonać tę samą funkcjonalność. Metoda ta jest obsługiwana przez większość baz danych majore, w tym SQL Server, MySQL, Oracle, PostGres, IBM DB2. INFORMATION_SCHEMA jest zgodny z ANSI SQL i ma na celu umożliwienie wyszukiwania informacji o obiektach bazy danych.,

IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'Country' AND TABLE_SCHEMA = 'dbo') DROP TABLE dbo.Country;

Jeśli korzystasz z wersji SQL Server przed SQL Server 2016, możesz użyć następującej metody, aby osiągnąć ten sam cel, co DROP TABLE, jeśli istnieje. Wymaga to użycia instrukcji IF W połączeniu z funkcją OBJECT_ID. Drugi parametr funkcji OBJECT_ID jest przekazywany jako 'u'. Reprezentuje typ obiektu do sprawdzenia i w tym przypadku ' u 'oznacza' tabelę zdefiniowaną przez użytkownika'.,

podsumowanie

w tym artykule widzieliśmy, jak użycie klauzuli IF EXISTS z instrukcją DROP TABLE zapewnia prostą jednowierszową metodę sprawdzania, czy tabela istnieje przed próbą jej usunięcia. Metoda DROP IF EXISTS może być również używana z innymi typami obiektów bazodanowych, aby umożliwić spójne i łatwe podejście do zapisu instrukcji w języku definicji danych (DDL) w kodzie SQL.,

Jeśli prowadzisz platformę bazodanową, która nie obsługuje DROP IF istnieje, zbadaliśmy kilka alternatywnych metod, których możesz użyć, aby osiągnąć te same wyniki, choć w mniej zwięzły sposób.

zgłoś to ogłoszenie

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *