A Drop és a Truncate közötti különbség

Anonim

Drop vs Truncate

A Drop and Truncate két SQL (Structured Query Language), ahol az adatbázishoz egy adatbázisból szeretnénk eltávolítani. A Drop and Truncate utasítások egy táblázatban és a kapcsolódó SQL utasításban eltávolítják a teljes adatot. Ebben az esetben a művelet törlése nem hatékony, mivel több tárhelyet használ, mint a Drop and Truncate.

Abban az esetben, ha egy adatbázist tartalmazó táblázatot el akarunk dobni az összes adattal együtt, az SQL lehetővé teszi számunkra, hogy könnyedén végrehajthassuk ezt a Drop utasítást használva. A Drop parancs egy DDL (Data Definition Language) parancs, amely felhasználható meglévő adatbázis, táblázat, index vagy nézet megsemmisítésére. Törli a táblázatban szereplő összes információt, valamint az adatbázis struktúráját. Továbbá szeretnénk megszabadulni egy táblázatban szereplő összes adattól, egyszerűen, de a táblázat nélkül, és ilyen módon használhatjuk a Truncate utasítás SQL-t. A csonkolás is egy DDL parancs, és kiküszöböli a táblázatban lévő összes sort, de megőrzi az asztal definícióját a későbbi felhasználásra.

Drop parancs

Mint korábban említettük, a Drop parancs eltávolítja az adott táblázatban létrehozott táblázatdefiníciót és minden adatot, integritási korlátot, indexet, triggeret és hozzáférési jogosultságot. Így a meglévő objektum teljes egészében lecsökken az adatbázisból, és a többi táblához való kapcsolódás már nem lesz érvényes a parancs végrehajtása után. Szintén eltávolítja az asztalra vonatkozó összes információt az adatszótárból. A következő a tipikus szintaxis a Drop utasításnak egy asztalra történő használatához.

DROP TABLE

Egyszerűen le kell cserélnünk az asztal nevét, amelyet törölni akarunk az adatbázisból a Drop parancs fenti példáján.

Fontos megjegyezni, hogy a Drop utasítás nem használható olyan táblázatok törléséhez, amelyeket egy idegen kulcskorlátozás már hivatkozott. Ebben az esetben először le kell vonnunk az idegen kulcsra vonatkozó hivatkozást vagy az adott táblázatot. Továbbá a Drop utasítás nem alkalmazható az adatbázisban lévő rendszertáblákon.

A Drop parancs automatikus elkövetési utasítás, a mûködést egyszer elindítva nem lehet visszahúzni, és nincs aktiválva. Amikor le van írva egy táblázat, az összes hivatkozás az asztalra nem lesz érvényes, így ha újra szeretnénk használni a táblát, újra kell kezdeni az összes integritáskorlátozással és hozzáférési jogosultsággal. A többi asztalhoz való kapcsolatot is újra kell találni.

Truncate parancs

A Truncate parancs egy DDL parancs, és a táblázatban lévő összes sor eltávolítja a felhasználó által megadott feltételek nélkül, és kiadja a táblázatban használt helyet, de a táblázat struktúráját oszlopokkal, indexekkel és korlátozásokkal ugyanaz marad.A csonkítás megszünteti az adatokat egy táblázatból a táblázatok tárolására használt adatlapok kibontásával, és csak ezek az oldaloldali lefoglalások tárolódnak a tranzakciós naplóban. Így kevesebb tranzakciós napló erőforrást és rendszer erőforrást használ más hasonló SQL parancsokhoz képest, mint a Delete. Tehát a Truncate egy kicsit gyorsabb kijelentés, mint mások. A következő a Truncate parancs tipikus szintaxisa.

TRUNCATE TABLE

A fenti szintaxisban le kell cserélnünk az asztal nevét, ahonnan el szeretnénk távolítani a teljes adatot.

A csonkolás nem használható olyan táblázatban, amelyet külföldi kulcskorlátozással jelöltek meg. Automatikusan használ egy elkötelezettséget, mielőtt cselekszik, és egy másik elkövető után, így a tranzakció visszaszorítása lehetetlen, és nincsenek kiváltók. Ha újra szeretnénk használni a táblázatot, csak az adatbázisban lévő meglévő táblázatokhoz kell hozzáférnünk.

Mi a különbség a Drop és a Truncate között?

A Drop and Truncate parancsok mind DDL parancsok, mind pedig automatikus elkövetési utasítások, így az ezeket a parancsokat végrehajtó tranzakciókat nem lehet visszahúzni.

A Drop és a Truncate közötti elsődleges különbség az, hogy a Drop parancs nemcsak az összes táblázatban lévő adatot távolítja el, hanem véglegesen eltávolítja a táblázatot az adatbázisból az összes hivatkozással, míg a Truncate parancs csak az összes sort törli egy táblázatban, és megőrzi az asztal szerkezetét és referenciáit.

Ha egy táblázatot eldobunk, akkor a többi táblázattal való kapcsolat érvénytelenné válik, és az integritási korlátokat és a hozzáférési jogosultságokat is eltávolítjuk. Tehát ha a táblázatot újra kell használni, azt újra kell építeni a kapcsolatokkal, az integritás korlátaival és a hozzáférési jogosultságokkal. De ha egy tábla csonka, akkor a táblázat szerkezete és korlátai továbbra is a későbbi használathoz tartoznak, így a fenti rekreáció bármelyikét nem kell újrafelhasználni.

Amikor ezeket a parancsokat alkalmazzák, óvatosnak kell lennünk azok használatával. Továbbá jobban meg kell értenünk ezeknek a parancsoknak a természetét, a működésüket és a gondos tervezést, mielőtt használnánk őket, hogy elkerüljük a hiányzó lényegi elemeket. Végül mindkét parancs felhasználható az adatbázisok gyors és egyszerű megtisztítására, kevesebb erőforrás felhasználásával.