Kentän katkaiseminen SQL: ssä


Paras vastaus

Ensinnäkin ”KENTTÄ EI OLE MAHDOLLISTA LUKITTAA”.

Leikkaaminen on käsite tietokannassa, joka ei ole kuin poisto-lause tai päivitys. Truncaten pääkäsite on, miten kohtauksen takana olevat metatiedot käsitellään. Jos työskentelet Oraclen kanssa, voit tutkia konseptia nimeltä ”High Water Mark” . Löydät sen hyvin yksityiskohtaisesti Burlesonin blogista täältä.

Sql-palvelimesta jos ajattelet ensisijaista avainta, jolla on automaattinen lisäysarvo, katkaise aseta kaikki tukiasemaan. Tarkoitan sinun määrittelemää aloitusarvoa tai oletusarvoa 1. Joten pohjimmiltaan mitä toimintoja se tekee loppupäässä, on tarkemmin metatietoja ja tarkemmin tietokannan taulukon tason ominaisuutta.

Nyt, jos halusit tarkoittaa, että haluat puhdistaa sarakkeen, voit vain käynnistää päivityksen NULL: llä kyseiselle sarakkeelle tai päivittää .

Update TABLE

Set Column = NULL/’’

Where 1 =1

Mainitsin tämän viimeksi missä lauseke, koska nyt useita päiviä sisältävä tietokanta ei salli sinun päivittää koko saraketta ilman lauseketta. Kohdassa mySql se kutsuttiin nimellä ”Safe Update flag” . Mutta tarkemmin sanottuna päivitä aina NULL-kirjaimella ‘’ -asetuksen sijaan hyvän käytännön noudattamiseksi.

Vastaus

DELETE on lokikohtainen toiminto riviä kohden. Tämä tarkoittaa, että kunkin rivin poisto tallennetaan ja poistetaan fyysisesti. Voit poistaa minkä tahansa rivin, johon ei liity rajoitusten rikkomista, samalla kun jätät ulkomaisen avaimen tai muut rajoitukset paikoilleen.

TRUNCATE on kirjautunut toiminto, mutta eri tavalla. TRUNCATE kirjaa tietosivujen kaupan sijainnin. Tietosivujen jakautuminen tarkoittaa, että tietorivit ovat edelleen olemassa tietosivuilla, mutta laajennukset on merkitty tyhjiksi uudelleenkäyttöä varten. Tämä tekee TRUNCATE-toiminnosta nopeamman toiminnon DELETE-toiminnolla. Taulukkoa ei voi katkaista, jolla on vieraan avaimen rajoituksia. Sinun on poistettava rajoitukset, katkaistava taulukko ja sovellettava rajoituksia uudelleen.

TRUNCATE palauttaa kaikki identiteettisarakkeet oletusarvojen alustusasetuksiin. Tämä tarkoittaa sitä, että jos sinulla on taulukko, jossa on henkilöllisyyssarake ja sinulla on 264 riviä, joiden siemenarvo on 1, hänen viimeisimmän tietueensa arvo on 264 (olettaen, että aloitit arvolla 1) henkilöllisyytesi sarakkeissa. Kun olet katkaissut taulukon, kun lisäät uuden tietueen tyhjään taulukkoon, henkilöllisyyssarakkeen arvo on 1. DELETE won ”t. Samassa tilanteessa, jos nykyinen rivi, lisätään uusi rivi tyhjään taulukkoon. , henkilöllisyyssarakkeen arvo on 265.

Miksi Leikata on nopeampi kuin Poista?

Syy: Sisään kirjoittaminen kaikkien tietojen poistamiseksi kopioidaan palautuspöydän tilaan ja suoritetaan sitten poistotoiminto. Joten kun kirjoitat ROLLBACK taulukon poistamisen jälkeen, voit saada tiedot takaisin (menetelmä saa ne palautuspöytien tahdille). tekniikka vie aikaa, mutta kun käytetään TRUNCATE-toimintoa, se poistaa tiedot suoraan kopioimatta niitä palautuspöydän tilaan. Joten TRUNCATE on nopeampi. Kaksi kertaa katkaistuna et voi saada tietoja takaisin.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *