Drop vs Trunkaat

Drop an Truncate sinn zwee SQL (Structured Query Language) Aussoen, déi an Datebank Management Systemer benotzt ginn, wou mir Daten records aus enger Datebank wëlle läschen. Béid Drop a Truncate Aussoen läschen déi ganz Daten an enger Tabell an déi betreffend SQL Ausso. Läschen Operatioun ass net effektiv an dësem Fall well et méi Späicherplazen benotzt wéi Drop an Truncate.

Am Fall, wa mir en Dësch an enger Datebank ganz mat allen Donnéeën wëllen ofschneiden, erlaabt SQL eis dës einfach mat Drop Ausso ze maachen. Drop Kommando ass en DDL (Data Definition Language) Kommando, an et kann benotzt ginn fir eng existent Datebank, Dësch, Index oder Vue ze zerstéieren. Et läscht déi ganz Informatioun an enger Tabell, souwéi d'Tabellstruktur aus der Datebank. Och kënne mir wëllen all d'Donnéeën an enger Tabell entloossen einfach, awer ouni den Dësch, a mir kënne Aussoe Suerge an SQL an esou engem Szenario benotzen. Truncate ass och en DDL Kommando an et eliminéiert all Zeilen an enger Tabelle awer behält d'Definitioun vum Dësch d'selwecht fir zukünfteg Benotzung.

Drop Kommando

Wéi virdru scho gesot, huet Drop-Kommando d'Tischdefinitioun ewechgeholl an all seng Donnéeën, Integritéit Contrainten, Indexen, Trigger, an Zougang Privilegien, déi op deem bestëmmten Dësch erstallt goufen. Also et fällt dat existent Objet aus der Datebank ganz erof, an d'Relatiounen zu aneren Dëscher sinn och net méi gëlteg nom Ausféierung vum Kommando. Och et läscht all d'Informatiounen iwwer den Dësch aus Datendictionnaire. Folgend ass déi typesch Syntax fir d'Drop-Ausso op engem Dësch ze benotzen.

DROPTABEL

Mir mussen den Tischnumm einfach ersetzen deen mir aus der Datebank an der uewe genannter Exempla vun Drop Kommando läschen.

Et ass wichteg ze weisen datt Drop Ausso kann net benotzt ginn fir en Dësch ze läschen, wat scho mat engem auslännesche Schlësselbegrëff referenzéiert ass. An dësem Fall muss de referenzéierten auslännesche Schlësselbegrëff oder deen eenzele Dësch als éischt fale gelooss ginn. Och Drop Ausso kann net op de Systemtabellen an der Datebank applizéiert ginn.

Wéi Drop Kommando ass eng Auto Engagement Ausso, kann d'Operatioun eemol ofgefouert ginn net zréck gerullt ginn a keng Ausléiser ginn ofgefouert. Wann en Dësch erofgeet, sinn all d'Referenzen op den Dësch net gëlteg, an dofir, wa mir den Dësch nach eng Kéier wëlle benotzen, da muss hie mat alle Integritéitbeschränkungen an Zouganksrechter nei gemaach ginn. All d'Bezéiungen zu den aneren Dëscher, mussen och erëm lokaliséiert ginn.

Trunker Kommando

Truncate Kommando ass en DDL Kommando, an et läscht all Zeilen an enger Tabell ouni Benotzer spezifizéiert Bedéngungen, a léisst de Raum vum Dësch benotzt, awer d'Tabellstruktur mat senge Kolonnen, Indexen a Contrainten bleiwen d'selwecht. Truncate eliminéiert Daten vun engem Dësch andeems d'Daten Säiten zougelooss ginn, déi benotzt gi fir d'Donnéeën vun den Tabellen ze späicheren, an nëmmen dës Säit Deallocatiounen ginn am Transaktiounslog ofgehalen. Also et benotzt manner Transaktiounslogressourcen a Systemressourcen am Verglach mat aner verbonne SQL Kommandoen wéi Läschen. Also Truncate ass e bësse méi séier Aussoe wéi anerer. Folgend ass déi typesch Syntax fir de Kommando Trunkaat.

TRUNCATE TABEL

Mir sollten den Dëschnumm ersetzen, aus deem mir déi ganz Donnéeën ewechhuelen, an der uewe genannter Syntax.

Trunkaat kann net op engem Dësch benotzt ginn, deen duerch en auslännesche Schlësselbegrëff referenzéiert ass. Et benotzt en Engagement automatesch ier et handelt an en aneren engagéiert duerno datt d'Rollback vun der Transaktioun onméiglech ass, a keng Trigger ginn. Wa mir den Dësch nach benotze wëllen, brauche mer nëmmen Zougang zu der existenter Tabelldefinitioun an der Datebank.

Wat ass den Ënnerscheed tëscht Drop an Truncate?

Béid Drop a Truncate Kommandoe sinn DDL Kommandoen an och automatesch engagéiert Aussoen, sou datt d'Transaktiounen, déi mat dëse Kommandoe gemaach ginn, net zréck kënne gerullt ginn.

De primäre Ënnerscheed tëscht Drop an Truncate ass datt den Drop Kommando läscht, net nëmmen all d'Daten an enger Tabelle, awer och se läscht d'Tabellstruktur permanent aus der Datebank mat all Referenzen, während den Truncate Kommando nëmmen all d'Rinnen an engem Dësch läscht. , an et konservéiert d'Tabellstruktur a seng Referenzen.

Wann en Dësch erofgesat gëtt, ginn d'Relatiounen zu aneren Dëscher net méi gëlteg, an d'Integrititéitsbegrenzungen an den Zougangsprivilegie ginn och ewechgeholl. Also wann den Dësch noutwendeg ass nei ze benotzen, muss et mat de Bezéiunge rekonstruéiert ginn, Integritéit Contrainten, an och d'Access Privilegien. Awer wann en Dësch ofgeschnidden ass, bleift d'Tabellstruktur a seng Contrainte fir zukünfteg Notzung, an dofir sinn keng vun den uewe genannte Rezepter net erfuerderlech fir weiderbenotzen.

Wann dës Kommandoe applizéiert ginn, musse mir virsiichteg sinn se ze benotzen. Mir sollten och e bessert Verständnis iwwer d'Natur vun dëse Kommandoen hunn, wéi se funktionnéieren, an och e puer virsiichteg Pläng ier se benotzt ginn fir ze vermeiden datt et essentiel Nout gëtt. Schlussendlech kënne béid vun dëse Kommandë benotzt ginn fir d'Datebanken séier an einfach ze botzen, a manner Ressourcen konsuméieren.