Különbség a leejtés és a csonkítás között

Különbség a leejtés és a csonkítás között
Különbség a leejtés és a csonkítás között

Videó: Különbség a leejtés és a csonkítás között

Videó: Különbség a leejtés és a csonkítás között
Videó: Energetikus leszek | Mi vár rám a mesterképzésen? | BME GPK 2024, Július
Anonim

Drop vs csonkítás

A Drop és a Truncate két SQL (Structured Query Language) utasítás, amelyeket az adatbázis-kezelő rendszerekben használnak, ahol az adatrekordokat szeretnénk eltávolítani az adatbázisból. Mind a Drop, mind a Truncate utasítások eltávolítják a tábla és a kapcsolódó SQL utasítás teljes adatát. A törlési művelet ebben az esetben nem hatékony, mert több tárhelyet használ, mint a Ledobás és a Csonkolás.

Ha egy adatbázisban lévő táblát az összes adattal együtt el akarunk vetni, az SQL lehetővé teszi, hogy ezt egyszerűen elvégezzük a Drop utasítás segítségével. A Drop parancs egy DDL (Data Definition Language) parancs, és egy meglévő adatbázis, tábla, index vagy nézet megsemmisítésére használható. Törli a tábla teljes információját, valamint a tábla szerkezetét az adatbázisból. Ezenkívül egyszerűen, de a tábla nélkül szeretnénk megszabadulni a tábla összes adatától, és ilyen esetben használhatjuk a Truncate utasítást az SQL-ben. A csonkítás szintén egy DDL parancs, és megszünteti a táblázat összes sorát, de megőrzi a tábla definícióját a későbbi használatra.

Parancs eldobása

Amint azt korábban említettük, a Drop parancs eltávolítja a tábladefiníciót és az összes adatot, integritási megszorítást, indexet, triggert és hozzáférési jogosultságot, amely az adott táblán lett létrehozva. Így a meglévő objektumot teljesen kidobja az adatbázisból, és a parancs végrehajtása után a többi táblához fűződő kapcsolatok sem lesznek érvényesek. Ezenkívül eltávolítja a táblával kapcsolatos összes információt az adatszótárból. A következő a tipikus szintaxis a Drop utasítás táblán való használatához.

DOP TABLE

Egyszerűen le kell cserélnünk az adatbázisból eltávolítani kívánt tábla nevét a Drop parancs fenti példájában.

Fontos kiemelni, hogy a Drop utasítás nem használható olyan tábla törlésére, amelyre már hivatkozott egy idegenkulcs-megszorítás. Ebben az esetben először a hivatkozó idegenkulcs-megszorítást vagy az adott táblát kell eldobni. Ezenkívül a Drop utasítás nem alkalmazható az adatbázis rendszertábláira.

Mivel a Drop parancs egy automatikus véglegesítési utasítás, az elindított műveletet nem lehet visszaforgatni, és a triggerek sem indulnak el. Ha egy táblát eldobunk, a táblára mutató hivatkozások nem lesznek érvényesek, ezért ha újra szeretnénk használni a táblát, újra létre kell hozni az összes integritási megszorítással és hozzáférési jogosultsággal. A többi táblához fűződő összes kapcsolatot is újra meg kell találni.

Csonkolás parancs

Truncate parancs egy DDL parancs, és eltávolítja a tábla összes sorát a felhasználó által meghatározott feltételek nélkül, és felszabadítja a tábla által használt területet, de a tábla szerkezete az oszlopokkal, indexekkel és megszorításokkal változatlan marad. A csonkítás a táblaadatok tárolására használt adatlapok felszabadításával eltávolítja az adatokat a táblából, és csak ezek az oldalfelosztások kerülnek tárolásra a tranzakciós naplóban. Így kevesebb tranzakciónapló-erőforrást és rendszererőforrást használ, mint más kapcsolódó SQL-parancsok, például a Törlés. Tehát a Truncate egy kicsit gyorsabb kijelentés, mint mások. A következő a Truncate parancs tipikus szintaxisa.

TÁBLÁZAT CSONKÍTÁSA

Cseréljük le a táblázat nevét, amelyből a teljes adatot el akarjuk távolítani, a fenti szintaxisban.

A csonkítás nem használható olyan táblán, amelyre idegenkulcs-kényszer hivatkozott. Automatikusan végrehajt egy véglegesítést, mielőtt cselekszik, és egy másik commit utána, így a tranzakció visszaállítása lehetetlen, és nem indul el a trigger. Ha újra szeretnénk használni a táblát, akkor csak az adatbázisban lévő meglévő tábladefiníciót kell elérnünk.

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

Mind a Drop, mind a Truncate parancsok DDL parancsok és egyben automatikus véglegesítő utasítások is, így az ezekkel a parancsokkal végrehajtott tranzakciók nem állíthatók vissza.

Az elsődleges különbség a Csonkítás és a Csonkítás között az, hogy a Csonkítás parancs nemcsak az összes adatot eltávolítja a táblából, hanem a táblaszerkezetet is végleg eltávolítja az adatbázisból az összes hivatkozással együtt, míg a Csonkítás parancs csak az összes adatot. a táblázat sorait, és megőrzi a táblázat szerkezetét és hivatkozásait.

Ha egy táblát eldobnak, a többi táblához fűződő kapcsolatok már nem lesznek érvényesek, és az integritási megszorítások és a hozzáférési jogosultságok is megszűnnek. Tehát ha a táblát újra kell használni, akkor azt rekonstruálni kell a kapcsolatokkal, az integritási megszorításokkal és a hozzáférési jogosultságokkal. De ha egy táblázatot csonkolnak, a tábla szerkezete és megszorításai megmaradnak a jövőbeni használatra, így a fenti újraalkotások egyike sem szükséges az újrafelhasználáshoz.

Amikor ezeket a parancsokat alkalmazzuk, óvatosnak kell lennünk a használatukban. Ezenkívül jobban meg kell értenünk ezeknek a parancsoknak a természetét, működését, valamint néhány gondos tervezést használatuk előtt, hogy elkerüljük a lényeges elemek hiányát. Végül mindkét parancs használható az adatbázisok gyors és egyszerű tisztítására, kevesebb erőforrás felhasználásával.

Ajánlott: