Legjobb válasz
Először is: „NEM LEHETSÉGES A TERÜLET VÁLTOZÁSA”.
A csonkolás egy koncepció az adatbázisban, amely nem olyan, mint egy törlési utasítás vagy egy frissítés. A Truncate fő koncepciója, hogy miként kezelik a jelenet metaadatait. Ha az Oracle-szel dolgozik, tanulmányozhatja a „High Water Mark” elnevezést. Nagyon részletesen megtalálhatja Burleson blogjában itt.
A Sql szerverben ha egy elsődleges kulcsra gondol automatikus növekedési értékkel, akkor csonkítsa az egészet az alapra. Úgy értem, hogy az Ön által meghatározott kezdő értéket vagy alapértelmezett 1-et. Tehát alapvetően az, hogy a háttérben milyen műveleteket végez, a metaadatokra és az adatbázis Táblázat szintű tulajdonságaira vonatkozik.
Most, ha azt akarja mondani, hogy meg akar tisztítani egy oszlopot, egyszerűen elindíthat egy frissítést az adott oszlop NULL-jével, vagy frissítheti a karakterrel.
Update TABLE
Set Column = NULL/’’
Where 1 =1
Ezt utoljára említettem záradék, mert most egy nap sok adatbázis nem teszi lehetővé az egész oszlop frissítését hol záradék nélkül. A mySql könyvtárban „Biztonságos frissítés jelző” néven szerepelt. De hogy konkrétabbak legyünk, mindig frissítsen a NULL-re a ‘’ helyett a helyes gyakorlat követése érdekében.
Válasz
A TÖRLÉS egy soronként naplózott művelet. Ez azt jelenti, hogy az egyes sorok törlését fizikailag rögzítik és eltávolítják. Bármely sort törölhet, amely nem jár korlátozás megsértésével, miközben az idegen kulcsot vagy egyéb korlátozást a helyén hagyja.
A TRUNCATE naplózott művelet, de más módon. A TRUNCATE naplózza az információs oldalak ügyletének helyét. Az információs oldalak elosztása azt jelenti, hogy az információs sorok még mindig léteznek az információs oldalakon, de a bővítményeket üresként jelölik újrafelhasználás céljából. Ez teszi a TRUNCATE-t gyorsabb műveletté a DELETE felett. Nem lehet csonkolni egy olyan táblát, amely idegen kulcs korlátokkal rendelkezik. El kell távolítania a megszorításokat, meg kell csonkolnia a táblázatot és újra alkalmazni kell a korlátozásokat.
A TRUNCATE visszaállítja az összes azonossági oszlopot az alapértelmezett érték inicializálására. Ez azt jelenti, hogy ha van egy táblája identitás oszloppal, és 264 sora van 1 alapértékkel, akkor a legfrissebb rekord értéke 264 lesz (feltételezve, hogy 1-es értékkel kezdte) az identitás oszlopaiban. Miután megcsonkította a táblázatot, amikor új rekordot illeszt be az üres táblába, az identitás oszlop értéke 1 lesz. DELETE won “t. Ugyanebben a forgatókönyvben, ha az aktuális sor, új sort illeszt be az üres táblába. , az identitás oszlop értéke 265.
Miért gyorsabb a Csonkolás, mint a Törlés?
Ok: Az összes információ törléséhez az írást a visszagörgető tábla területére másoljuk, majd a törlési műveletet hajtjuk végre. Tehát, ha egy tábla törlése után beírja a ROLLBACK parancsot, visszakaphatja az információt (a módszer megkapja a Visszatekerési táblák üteméhez). a technika időbe fog telni, de a TRUNCATE használatakor az információkat közvetlenül eltávolítja anélkül, hogy átmásolná őket a Rollback tábla területére. Tehát a TRUNCATE gyorsabb. Kétszer csonkítva nem tudja visszaszerezni az információkat.