Pagkakaiba sa pagitan ng Drop at Truncate

Pagkakaiba sa pagitan ng Drop at Truncate
Pagkakaiba sa pagitan ng Drop at Truncate

Video: Pagkakaiba sa pagitan ng Drop at Truncate

Video: Pagkakaiba sa pagitan ng Drop at Truncate
Video: Network Engineer vs Support Engineer: What's the difference? 2024, Nobyembre
Anonim

Drop vs Truncate

Ang Drop at Truncate ay dalawang SQL (Structured Query Language) na mga statement na ginagamit sa Database Management Systems, kung saan gusto naming alisin ang mga record ng data mula sa isang database. Ang parehong Drop at Truncate na pahayag ay nag-aalis ng buong data sa isang talahanayan at ang nauugnay na SQL statement. Hindi epektibo ang pag-delete sa kasong ito dahil gumagamit ito ng mas maraming espasyo sa storage kaysa sa Drop at Truncate.

Kung sakaling, kung gusto naming itapon ang isang talahanayan sa isang database kasama ang lahat ng data nito, binibigyang-daan kami ng SQL na madaling gawin ito gamit ang Drop statement. Ang drop command ay isang DDL (Data Definition Language) na utos, at maaari itong gamitin upang sirain ang isang umiiral na database, table, index o view. Tinatanggal nito ang buong impormasyon sa isang talahanayan, pati na rin ang istraktura ng talahanayan mula sa database. Gayundin, maaari naming hilingin na alisin ang lahat ng data sa isang talahanayan nang simple, ngunit walang talahanayan, at maaari naming gamitin ang Truncate na pahayag sa SQL sa ganoong sitwasyon. Ang Truncate ay isa ring DDL command at inaalis nito ang lahat ng row sa isang table ngunit pinapanatili ang kahulugan ng table na pareho para magamit sa hinaharap.

Drop command

Tulad ng nabanggit kanina, inaalis ng Drop command ang kahulugan ng talahanayan at lahat ng data nito, mga hadlang sa integridad, pag-index, pag-trigger, at mga pribilehiyo sa pag-access, na ginawa sa partikular na talahanayang iyon. Kaya ibinabagsak nito ang umiiral na bagay mula sa database nang buo, at ang mga relasyon sa iba pang mga talahanayan ay hindi na magiging wasto pagkatapos isagawa ang utos. Tinatanggal din nito ang lahat ng impormasyon tungkol sa talahanayan mula sa diksyunaryo ng data. Ang sumusunod ay ang karaniwang syntax para sa paggamit ng Drop statement sa isang table.

DROP TABLE

Kailangan nating palitan lang ang pangalan ng talahanayan na gusto nating alisin sa database sa halimbawa sa itaas ng Drop command.

Mahalagang ituro na ang Drop statement ay hindi maaaring gamitin para magtanggal ng table, na na-reference na ng foreign key constraint. Sa kasong iyon, ang pagtukoy sa foreign key na hadlang, o ang partikular na talahanayan ay dapat na i-drop muna. Gayundin, hindi mailalapat ang Drop statement sa mga system table sa database.

Dahil ang Drop command ay isang auto commit statement, ang operasyon kapag pinaandar ay hindi na maibabalik at walang trigger ang papaganahin. Kapag ang isang talahanayan ay ibinaba, ang lahat ng mga sanggunian sa talahanayan ay hindi magiging wasto, at sa gayon, kung gusto nating gamitin muli ang talahanayan, kailangan itong muling likhain kasama ang lahat ng mga hadlang sa integridad at mga pribilehiyo sa pag-access. Ang lahat ng mga ugnayan sa iba pang mga talahanayan, ay dapat ding matatagpuan muli.

Truncate command

Ang Truncate command ay isang DDL command, at inaalis nito ang lahat ng row sa isang table nang walang anumang kundisyon na tinukoy ng user, at inilalabas ang space na ginagamit ng table, ngunit ang istraktura ng table kasama ang mga column, index, at constraints nito ay nananatiling pareho. Tinatanggal ng Truncate ang data mula sa isang talahanayan sa pamamagitan ng pagde-deallocating sa mga page ng data na ginamit upang mag-imbak ng data ng talahanayan, at ang mga deallocation ng page na ito lamang ang pinananatili sa log ng transaksyon. Kaya gumagamit ito ng mas kaunting mga mapagkukunan ng log ng transaksyon at mga mapagkukunan ng system kumpara sa iba pang nauugnay na mga SQL command tulad ng Delete. Kaya ang Truncate ay medyo mas mabilis na pahayag kaysa sa iba. Ang sumusunod ay ang karaniwang syntax para sa Truncate command.

TRUNCATE TABLE

Dapat nating palitan ang pangalan ng talahanayan, kung saan gusto nating alisin ang buong data, sa syntax sa itaas.

Ang Truncate ay hindi maaaring gamitin sa isang table na na-reference ng foreign key constraint. Awtomatikong gumagamit ito ng commit bago ito kumilos at isa pang commit pagkatapos nito kaya imposible ang pag-rollback ng transaksyon, at walang mga trigger ang pinapagana. Kung gusto naming muling gamitin ang talahanayan kailangan lang naming i-access ang umiiral na kahulugan ng talahanayan sa database.

Ano ang pagkakaiba ng Drop at Truncate?

Ang parehong Drop at Truncate na command ay mga DDL command at pati na rin ang mga auto commit statement kaya ang mga transaksyong ginawa gamit ang mga command na ito ay hindi na maibabalik.

Ang pangunahing pagkakaiba sa pagitan ng Drop at Truncate ay ang Drop command ay nag-aalis, hindi lamang ng lahat ng data sa isang table, kundi pati na rin sa permanenteng pag-alis ng istraktura ng talahanayan mula sa database kasama ang lahat ng mga reference, habang ang Truncate command ay nag-aalis lamang ng lahat ang mga hilera sa isang talahanayan, at pinapanatili nito ang istraktura ng talahanayan at ang mga sanggunian nito.

Kung ang isang talahanayan ay ibinaba, ang mga ugnayan sa iba pang mga talahanayan ay hindi na magiging wasto, at ang mga hadlang sa integridad at mga pribilehiyo sa pag-access ay aalisin din. Kaya't kung ang talahanayan ay kinakailangan upang muling gamitin, ito ay kailangang muling itayo kasama ang mga relasyon, mga hadlang sa integridad, at gayundin ang mga pribilehiyo sa pag-access. Ngunit kung pinutol ang isang talahanayan, mananatili ang istraktura ng talahanayan at ang mga hadlang nito para magamit sa hinaharap, at sa gayon, ang alinman sa mga libangan sa itaas ay hindi kinakailangan para sa muling paggamit.

Kapag inilapat ang mga utos na ito, dapat tayong maging maingat sa paggamit ng mga ito. Gayundin, dapat tayong magkaroon ng mas mahusay na pag-unawa sa katangian ng mga utos na ito, kung paano gumagana ang mga ito, at gayundin ang ilang maingat na pagpaplano bago gamitin ang mga ito upang maiwasan ang mga nawawalang mahahalagang bagay. Sa wakas, ang parehong command na ito ay magagamit upang linisin ang mga database nang mabilis at madali, na kumukonsumo ng mas kaunting mga mapagkukunan.

Inirerekumendang: