Drop vs Truncate

Drop and 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 odeberou všechna data v tabulce a související příkaz SQL. Operace odstranění není v tomto případě účinná, protože používá více úložných prostorů než Drop and Truncate.

V případě, že chceme zahodit 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 všechny informace v tabulce i strukturu tabulky z databáze. Také bychom se mohli chtít zbavit všech dat v tabulce jednoduše, ale bez tabulky a v takovém případě můžeme použít příkaz zkrátit v SQL. Truncate je také příkaz DDL a eliminuje všechny řádky v tabulce, ale zachovává definici tabulky pro budoucí použití stejně.

Příkaz přetažení

Jak bylo uvedeno výše, příkaz Drop odstraní definici tabulky a všechna její data, omezení integrity, indexy, triggery a přístupová oprávnění, která byla vytvořena v dané tabulce. Tím zcela zruší existující objekt z databáze a vztahy k jiným tabulkám již nebudou po provedení příkazu platné. Také odebere všechny informace o tabulce ze datového slovníku. Následuje typická syntaxe pro použití příkazu Drop v tabulce.

DROP TABLE

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

Je důležité zdůraznit, že příkaz Drop nelze použít k odstranění tabulky, na kterou již bylo použito omezení cizím klíčem. 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. Příkaz Drop nelze také použít na systémové tabulky v databázi.

Protože příkaz Drop je příkazem automatického potvrzení, nelze operaci jednou spuštěnou 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í být znovu vytvořena 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.

Zkraťte příkaz

Příkaz Truncate je příkaz DDL a odebere všechny řádky v tabulce bez jakýchkoli podmínek zadaných uživatelem a uvolní místo, které tabulka používá, ale struktura tabulky se svými sloupci, indexy a omezeními zůstává stejná. Zkrácení eliminuje data z tabulky alokací datových stránek použitých k ukládání dat tabulky a v protokolu transakcí se uchovávají pouze tato alokace stránek. 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 například Odstranit. Truncate je tedy o něco rychlejší prohlášení než ostatní. Následuje obvyklá syntaxe příkazu Truncate.

TRUNCATE TABLE

Ve výše uvedené syntaxi bychom měli nahradit název tabulky, ze které chceme odstranit všechna data.

Zkrácení nelze použít v tabulce, na kterou se odkazuje omezení cizího klíče. Použije potvrzení automaticky před provedením a dalším potvrzením poté, takže vrácení transakce je nemožné a nejsou spuštěny žádné spouštěče. Pokud chceme tabulku znovu použít, musíme přistupovat pouze 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 auto commit, takže transakce provedené pomocí těchto příkazů nelze vrátit zpět.

Primární rozdíl mezi Drop a Truncate spočívá v tom, že příkaz Drop odstraní nejen všechna data v tabulce, ale také trvale odstraní strukturu tabulky se všemi odkazy, zatímco příkaz Truncate odstraní pouze všechny řádky 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 odstraněna také omezení integrity a přístupová oprávnění. Pokud se tedy požaduje, aby tabulka byla znovu použita, musí být rekonstruována s vztahy, omezeními integrity a také přístupovými právy. Pokud je však tabulka zkrácena, struktura tabulky a její omezení zůstávají pro budoucí použití, a proto není pro opětovné použití vyžadována žádná z výše uvedených reakcí.

Při použití těchto příkazů musíme být opatrní, abychom je mohli používat. Také bychom měli lépe porozumět povaze těchto příkazů, jak fungují, a také nějakému pečlivému plánování před jejich použitím, abychom předešli chybějícím náležitostem. Nakonec lze oba tyto příkazy použít k rychlému a snadnému vyčištění databází, což vyžaduje méně prostředků.