Drop vs Truncate

Drop i Truncate to dwie instrukcje SQL (Structured Query Language) używane w systemach zarządzania bazami danych, w których chcemy usunąć rekordy danych z bazy danych. Zarówno instrukcje Drop, jak i Truncate usuwają całe dane z tabeli i powiązaną instrukcję SQL. Operacja usuwania nie jest w tym przypadku skuteczna, ponieważ wykorzystuje więcej miejsca do przechowywania niż upuszczanie i obcinanie.

W przypadku, gdy chcemy odrzucić tabelę w bazie danych razem z wszystkimi danymi, SQL pozwala nam łatwo wykonać to za pomocą instrukcji Drop. Komenda Drop to komenda DDL (Data Definition Language) i może być używana do niszczenia istniejącej bazy danych, tabeli, indeksu lub widoku. Usuwa całą informację z tabeli, a także strukturę tabeli z bazy danych. Możemy również chcieć pozbyć się wszystkich danych w tabeli po prostu, ale bez tabeli, i możemy użyć instrukcji Truncate w SQL w takim scenariuszu. Obcinanie jest także poleceniem DDL i eliminuje wszystkie wiersze w tabeli, ale zachowuje tę samą definicję tabeli do przyszłego użytku.

Upuść polecenie

Jak wspomniano wcześniej, polecenie Drop usuwa definicję tabeli i wszystkie jej dane, ograniczenia integralności, indeksy, wyzwalacze i uprawnienia dostępu, które zostały utworzone w tej konkretnej tabeli. Tak więc całkowicie usuwa istniejący obiekt z bazy danych, a relacje z innymi tabelami również nie będą już poprawne po wykonaniu polecenia. Usuwa również wszystkie informacje o tabeli ze słownika danych. Poniżej znajduje się typowa składnia użycia instrukcji Drop w tabeli.

TABELA UPUSZCZANIA

Musimy po prostu zastąpić nazwę tabeli, którą chcemy usunąć z bazy danych w powyższym przykładzie polecenia Drop.

Należy zauważyć, że instrukcja Drop nie może zostać użyta do usunięcia tabeli, do której już odwołuje się ograniczenie klucza obcego. W takim przypadku najpierw należy usunąć odwołanie do klucza obcego lub tę konkretną tabelę. Ponadto instrukcja Drop nie może być stosowana w tabelach systemowych w bazie danych.

Ponieważ polecenie Drop jest instrukcją automatycznego zatwierdzania, operacji po uruchomieniu nie można cofnąć i żadne wyzwalacze nie zostaną uruchomione. Po upuszczeniu tabeli wszystkie odwołania do tabeli nie będą ważne, więc jeśli chcemy ponownie użyć tabeli, należy ją odtworzyć ze wszystkimi ograniczeniami integralności i uprawnieniami dostępu. Wszystkie relacje z innymi tabelami również muszą zostać zlokalizowane ponownie.

Obetnij polecenie

Polecenie obcięcia jest poleceniem DDL i usuwa wszystkie wiersze w tabeli bez żadnych warunków określonych przez użytkownika i zwalnia przestrzeń używaną przez tabelę, ale struktura tabeli z jej kolumnami, indeksami i ograniczeniami pozostaje taka sama. Truncate eliminuje dane z tabeli poprzez cofnięcie przydziału stron danych używanych do przechowywania danych tabeli, a tylko te zwolnienia stron są przechowywane w dzienniku transakcji. Wykorzystuje więc mniej zasobów dziennika transakcji i zasobów systemowych w porównaniu do innych powiązanych poleceń SQL, takich jak Usuń. Tak więc Truncate jest nieco szybszym stwierdzeniem niż inne. Poniżej przedstawiono typową składnię polecenia Skróć.

TABELA ŚCIEŻKI

Powinniśmy zastąpić nazwę tabeli, z której chcemy usunąć całe dane, w powyższej składni.

Obcięcia nie można używać w tabeli, do której odwołuje się ograniczenie klucza obcego. Używa zatwierdzenia automatycznie, zanim zacznie działać, a następnie kolejnego zatwierdzenia, więc wycofanie transakcji jest niemożliwe i nie są uruchamiane żadne wyzwalacze. Jeśli chcemy ponownie użyć tabeli, musimy uzyskać dostęp tylko do istniejącej definicji tabeli w bazie danych.

Jaka jest różnica między Drop a Truncate?

Zarówno polecenia Drop, jak i Truncate są poleceniami DDL, a także instrukcjami automatycznego zatwierdzania, więc transakcji wykonanych przy użyciu tych poleceń nie można wycofać.

Podstawowa różnica między Drop a Truncate polega na tym, że polecenie Drop usuwa nie tylko wszystkie dane w tabeli, ale także trwale usuwa strukturę tabeli z bazy danych ze wszystkimi odniesieniami, podczas gdy polecenie Truncate usuwa tylko wszystkie wiersze w tabeli , i zachowuje strukturę tabeli i jej odwołania.

Jeśli tabela zostanie upuszczona, relacje z innymi tabelami przestaną być ważne, a ograniczenia integralności i uprawnienia dostępu również zostaną usunięte. Dlatego jeśli tabela musi zostać ponownie użyta, należy ją zrekonstruować z uwzględnieniem relacji, ograniczeń integralności, a także uprawnień dostępu. Ale jeśli tabela zostanie obcięta, struktura tabeli i jej ograniczenia pozostaną do wykorzystania w przyszłości, a zatem żadne z powyższych odtworzeń nie jest wymagane do ponownego użycia.

Po zastosowaniu tych poleceń musimy zachować ostrożność przy ich użyciu. Ponadto powinniśmy lepiej zrozumieć naturę tych poleceń, ich działanie, a także ostrożne planowanie przed ich użyciem, aby zapobiec pominięciu niezbędnych elementów. Na koniec oba te polecenia mogą być używane do szybkiego i łatwego czyszczenia baz danych, zużywając mniej zasobów.