Разлика между Drop и Truncate

Разлика между Drop и Truncate
Разлика между Drop и Truncate

Видео: Разлика между Drop и Truncate

Видео: Разлика между Drop и Truncate
Видео: SQL: удаление против усечения против отбрасывания 2024, Декември
Anonim

Капка срещу отрязване

Drop and Truncate са два SQL израза (Структуриран език за заявки), които се използват в Системите за управление на бази данни, където искаме да премахнем записите от данни от база данни. Операторите Drop и Truncate премахват всички данни в таблица и свързания SQL израз. Операцията за изтриване в този случай не е ефективна, тъй като използва повече места за съхранение от Drop and Truncate.

В случай, че ако искаме да отхвърлим таблица в база данни заедно с всичките й данни, SQL ни позволява лесно да извършим това, като използваме оператора Drop. Командата Drop е DDL (Data Definition Language) команда и тя може да се използва за унищожаване на съществуваща база данни, таблица, индекс или изглед. Той изтрива цялата информация в таблица, както и структурата на таблицата от базата данни. Също така, може да пожелаем да се отървем от всички данни в таблица просто, но без таблицата и можем да използваме оператора Truncate в SQL в такъв сценарий. Truncate също е DDL команда и тя елиминира всички редове в таблица, но запазва дефиницията на таблицата еднаква за бъдеща употреба.

Пуснете команда

Както бе споменато по-рано, командата Drop премахва дефиницията на таблицата и всички нейни данни, ограничения на целостта, индекси, тригери и привилегии за достъп, която е създадена в тази конкретна таблица. Така той изпуска изцяло съществуващия обект от базата данни и връзките с други таблици също вече няма да са валидни след изпълнение на командата. Също така премахва цялата информация за таблицата от речника на данните. Следва типичният синтаксис за използване на оператора Drop на таблица.

ТАБЛИЦА ЗА ПАДАНЕ

Трябва просто да заменим името на таблицата, което искаме да премахнем от базата данни в горния пример на командата Drop.

Важно е да се отбележи, че операторът Drop не може да се използва за изтриване на таблица, към която вече е посочено ограничение за външен ключ. В този случай трябва първо да отпадне ограничението за препратки към външен ключ или тази конкретна таблица. Освен това операторът Drop не може да се приложи върху системните таблици в базата данни.

Тъй като командата Drop е оператор за автоматично фиксиране, операцията, след като се задейства, не може да бъде върната назад и няма да бъдат задействани тригери. Когато една таблица е отпаднала, всички препратки към нея няма да са валидни и затова, ако искаме да използваме таблицата отново, тя трябва да бъде пресъздадена с всички ограничения на целостта и привилегиите за достъп. Всички връзки с останалите таблици също трябва да бъдат локализирани отново.

Команда за отрязване

Командата Truncate е DDL команда и тя премахва всички редове в таблица без никакви условия, посочени от потребителя, и освобождава пространството, използвано от таблицата, но структурата на таблицата със своите колони, индекси и ограничения остава същата. Truncate елиминира данни от таблица, като освобождава страниците с данни, използвани за съхраняване на данните на таблицата, и само тези освобождавания на страници се съхраняват в регистъра на транзакциите. Така че той използва по-малко ресурси на регистъра на транзакциите и системни ресурси в сравнение с други свързани SQL команди като Delete. Така че Truncate е малко по-бързо изявление от останалите. Следва типичният синтаксис за командата Truncate.

ТРАНСКАТА МАСА

Трябва да заменим името на таблицата, от която искаме да премахнем всички данни, в горния синтаксис.

Съкращаването не може да се използва в таблица, на която е посочено ограничение за външен ключ. Той използва фиксация автоматично, преди да действа, и друг фиксиране след това, така че връщането на транзакцията е невъзможно и не се задействат тригери. Ако искаме да използваме таблицата повторно, трябва само да осъществим достъп до съществуващата дефиниция на таблицата в базата данни.

Каква е разликата между Drop и Truncate?

Командите Drop и Truncate са DDL команди, а също и оператори за автоматично фиксиране, така че транзакциите, извършени с помощта на тези команди, не могат да бъдат върнати обратно.

Основната разлика между Drop и Truncate е, че командата Drop премахва не само всички данни в таблица, но и премахва структурата на таблицата за постоянно от базата данни с всички препратки, докато командата Truncate премахва само всички редове в таблица, и запазва структурата на таблицата и нейните препратки.

Ако таблица отпадне, връзките с други таблици вече няма да са валидни и ограниченията за целостта и привилегиите за достъп също ще бъдат премахнати. Така че, ако се изисква таблицата да се използва повторно, тя трябва да бъде реконструирана с връзките, ограниченията на целостта, както и привилегиите за достъп. Но ако таблица е съкратена, структурата на таблицата и нейните ограничения остават за бъдеща употреба и така, някоя от горните версии не е необходима за повторно използване.

Когато се прилагат тези команди, трябва да внимаваме да ги използваме. Също така, трябва да имаме по-добро разбиране за същността на тези команди, как работят, както и внимателно планиране преди да ги използваме, за да предотвратим липсата на най-важното. И накрая, двете команди могат да се използват за бързо и лесно почистване на базите данни, като консумират по-малко ресурси.

Препоръчано: