Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako rozlišovať medzi Truncate & Delete v Oracle

Existujú dva spôsoby , ako odstrániť záznamy v Oracle . Jedným z nich je použitie " zabiť všetkých " situácie , kedy príkaz skrátiť úplne vyprázdni databázovú tabuľku , a druhý je DELETE príkaz , ktorý možno filtrovať potenciálny záznamy a zvrátiť opatrenia v takých prípadoch , ako náhodného vymazanie . Najbezpečnejší spôsob , ako preukázať tento proces je vytvoriť testovacie tabuľku a skúste potenciálny príkazy , skôr ako pokus o existujúcej databázy . Návod
DELETE
1

Vytvorte testovacie tabuľku a naplniť ju dátami otestovať výsledok . Vložené údaje demonštruje použitie delete a vyhlásenie skrátiť , takto :

CREATE TABLE test ( testdata VARCHAR2 ( 2 ) ) ;

INSERT INTO testu ( Testdata ) VALUES ( ' AX ' ) ;

INSERT INTO testu ( Testdata ) VALUES ( ' AY ' ) ;

INSERT INTO testu ( Testdata ) VALUES ( " AZ " ) ;

INSERT INTO testu ( Testdata ) VALUES ( " BX " ) ;

vložiť do testu ( Testdata ) VALUES ( ' podľa' ) ;

vložiť do testu ( Testdata ) VALUES ( ' BZ ' ) ;

INSERT INTO testu ( Testdata ) VALUES ( " CX " ) ;

INSERT INTO testu ( Testdata ) VALUES ( " CY " ) ;

INSERT INTO testov ( Testdata ) VALUES ( " CZ " ) ;

INSERT INTO testu ( Testdata ) VALUES ( " DX " ) ;

INSERT INTO testu ( Testdata ) VALUES ( ' DY ' ) ;

INSERT DO testu ( Testdata ) VALUES ( " DZ " ) ;

COMMIT ;

SELECT * FROM testu ;
2

odstrániť počet riadkov pomocou príkazu delete , ale nepáchají výsledok . To vám ukáže, ako delete chráni dáta pred náhodným vymazaním za normálnych okolností . Príkaz delete beží z príkazového riadku takto :

SQL > DELETE FROM test , kedy testdata LIKE ' % ' ;

Toto zmaže všetky riadky uvedená znakom " A " a nechajte . Zvyšok zostávajúce

Rollback výsledok a zobraziť výsledky v tabuľke ako tak :

SQL > ROLLBACK ;

To zvráti predchádzajúce delete a tabuľka by sa nastaviť späť do pôvodného stavu . To je overiteľné podľa :

SQL > SELECT * FROM skúšky ;
3

Spustite znova príkaz DELETE , potom " COMMIT " a " rollback " pred testovaním výstup ako je znázornené :

SQL > DELETE FROM test , kedy testdata LIKE ' % ' ;

SQL > COMMIT ;

SQL > ROLLBACK ;

SQL > SELECT * FROM skúšky ;

To ukazuje , že Oracle " DELETE " vyhlásenie bolo efektívne a ignoroval vyhlásenie vrátenie späť , kvôli akcii " POTVRDIŤ " sa koná bezprostredne potom . To znamená , že všetky riadky začaté s " A " v poli " testdata " zmizne z databázy a nie sú vymáhateľné s " ROLLBACK " vyhlásenie .
Skrátiť
4

Execute vyhlásenie skrátiť na skúšobnom stole takto :

SQL > TRUNCATE TABLE testu ;
5

Rollback na predchádzajúce vyhlásenie takto :

SQL > ROLLBACK ,
6

Vyberte položky z tabuľky test takto :

SQL > SELECT * FROM skúšky ;

nevykazuje žiadne položky v tabuľke . " ROLLBACK " vyhlásenie nefunguje na povel skráti a všetky riadky v databáze zmizne .

Ďalší podstatný rozdiel od " DELETE " je to , že " skrátiť " funguje rýchlejšie , ale nie je schopný odfiltrovať dáta pomocou " where" ( na rozdiel od DELETE ) .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené