Rozdíl mezi Drop a Truncate

Rozdíl mezi Drop a Truncate
Rozdíl mezi Drop a Truncate

Video: Rozdíl mezi Drop a Truncate

Video: Rozdíl mezi Drop a Truncate
Video: Obtížnost tanečních postupů BTS 2024, Červenec
Anonim

Drop vs. Truncate

Drop a Truncate jsou dva příkazy SQL (Structured Query Language), které se používají v systémech správy databází, kde chceme odstranit datové záznamy z databáze. Příkazy Drop a Truncate odstraní všechna data v tabulce a související příkaz SQL. Operace odstranění není v tomto případě účinná, protože využívá více úložného prostoru než Drop and Truncate.

V případě, že chceme zrušit tabulku v databázi spolu se všemi jejími daty, SQL nám to umožňuje snadno provést pomocí příkazu Drop. Příkaz Drop je příkaz DDL (Data Definition Language) a lze jej použít ke zničení existující databáze, tabulky, indexu nebo pohledu. Vymaže z databáze všechny informace v tabulce i strukturu tabulky. Také se můžeme chtít zbavit všech dat v tabulce jednoduše, ale bez tabulky, a v takovém scénáři můžeme použít příkaz Truncate v SQL. Truncate je také příkaz DDL a odstraňuje všechny řádky v tabulce, ale zachovává definici tabulky stejnou pro budoucí použití.

Drop command

Jak již bylo zmíněno dříve, příkaz Drop odstraní definici tabulky a všechna její data, omezení integrity, indexy, spouštěče a přístupová oprávnění, která byla vytvořena pro tuto konkrétní tabulku. Stávající objekt tedy zcela vypustí z databáze a vztahy k jiným tabulkám také nebudou po provedení příkazu platné. Také odstraní všechny informace o tabulce z datového slovníku. Následuje typická syntaxe pro použití příkazu Drop na stole.

DROP TABLE

Musíme jednoduše nahradit název tabulky, kterou chceme odstranit z databáze ve výše uvedeném příkladu příkazu Drop.

Je důležité zdůraznit, že příkaz Drop nelze použít k odstranění tabulky, na kterou již odkazovalo omezení cizího klíče. V takovém případě by mělo být nejprve zrušeno omezení odkazujícího cizího klíče nebo konkrétní tabulka. Také příkaz Drop nelze použít na systémové tabulky v databázi.

Vzhledem k tomu, že příkaz Drop je příkazem automatického potvrzení, nelze již jednou spuštěnou operaci vrátit zpět a nebudou spuštěny žádné spouštěče. Když je tabulka zrušena, všechny odkazy na tabulku nebudou platné, a pokud tedy chceme tabulku znovu použít, musíme ji znovu vytvořit se všemi omezeními integrity a přístupovými právy. Všechny vztahy k ostatním tabulkám musí být také umístěny znovu.

Příkaz zkrátit

Příkaz Zkrátit je příkaz DDL a odebere všechny řádky v tabulce bez jakýchkoli podmínek specifikovaných uživatelem a uvolní prostor, který tabulka využívá, ale struktura tabulky se sloupci, indexy a omezeními zůstává stejná. Truncate odstraňuje data z tabulky uvolněním datových stránek používaných k ukládání dat tabulky a pouze tato uvolnění stránek jsou uchovávána v protokolu transakcí. Využívá tedy méně prostředků protokolu transakcí a systémových prostředků ve srovnání s jinými souvisejícími příkazy SQL, jako je Delete. Truncate je tedy o něco rychlejší příkaz než ostatní. Následuje typická syntaxe příkazu Truncate.

ZKRÁTIT TABULKU

Název tabulky, ze které chceme odstranit všechna data, bychom měli nahradit výše uvedenou syntaxí.

Truncate nelze použít u tabulky, na kterou odkazuje omezení cizího klíče. Automaticky používá potvrzení před tím, než zareaguje, a další potvrzení poté, takže vrácení transakce není možné a nejsou spouštěny žádné spouštěče. Pokud chceme tabulku znovu použít, potřebujeme pouze přístup k existující definici tabulky v databázi.

Jaký je rozdíl mezi Drop a Truncate?

Příkazy Drop a Truncate jsou příkazy DDL a také příkazy automatického potvrzení, takže transakce provedené pomocí těchto příkazů nelze vrátit zpět.

Primární rozdíl mezi Drop a Truncate je ten, že příkaz Drop odstraní nejen všechna data v tabulce, ale také trvale odstraní strukturu tabulky z databáze se všemi odkazy, zatímco příkaz Truncate odstraní pouze všechna řádků v tabulce a zachovává strukturu tabulky a její odkazy.

Pokud je tabulka zrušena, vztahy s ostatními tabulkami již nebudou platné a budou také odstraněna omezení integrity a přístupová oprávnění. Pokud se tedy vyžaduje opětovné použití tabulky, musí být rekonstruována s ohledem na vztahy, omezení integrity a také přístupová oprávnění. Pokud je však tabulka zkrácena, struktura tabulky a její omezení zůstanou pro budoucí použití, a proto není pro opětovné použití vyžadována žádná z výše uvedených rekreací.

Když jsou tyto příkazy aplikovány, musíme být při jejich používání opatrní. Také bychom měli lépe porozumět povaze těchto příkazů, jak fungují, a také pečlivému plánování před jejich použitím, abychom předešli vynechání podstatných prvků. A konečně, oba tyto příkazy lze použít k rychlému a snadnému vyčištění databází, přičemž spotřebuje méně zdrojů.

Doporučuje: