Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> software >> Software Database >> .

Come distinguere tra Tronca & Elimina in Oracle

Ci sono due modi per rimuovere i record in Oracle . Uno è quello di utilizzare il " uccidere tutti ", situazione in cui il comando TRUNCATE svuota completamente la tabella di database , e l'altro è il comando DELETE , in grado di filtrare i potenziali record e invertire l'azione in casi come la cancellazione accidentale . Il modo più sicuro per dimostrare questo processo è quello di creare una tabella di test e provare i potenziali comandi out piuttosto che sperimentare su un database esistente . Istruzioni
DELETE
1

Creare una tabella di test e compilarlo con i dati per verificare il risultato . I dati inseriti illustrato l'utilizzo della cancellazione e la dichiarazione truncate , come segue :

CREATE TABLE test ( testdata VARCHAR2 ( 2) ) ;

INSERT INTO prova ( testdata ) VALUES ( ' AX ');

INSERT INTO prova ( testdata ) VALUES ( ' AA ') ;

INSERT INTO prova ( testdata ) VALUES ( ' Z ');

INSERT INTO prova ( testdata ) VALUES ( ' BX ') ;

INSERT INTO prova ( testdata ) VALUES ( ' da');

INSERT INTO prova ( testdata ) VALUES ( ' BZ '); < br

INSERT > INTO prova ( testdata ) VALUES ( ' CX ') ;

INSERT INTO prova ( testdata ) VALUES ( ' CY ');

INSERT INTO test ( testdata ) VALUES ( ' CZ ');

INSERT INTO test ( testdata ) VALUES ( ' DX ');

INSERT INTO prova ( testdata ) VALUES ( ' DY ');

INSERISCI INTO prova ( testdata ) VALUES ( ' DZ ') ;

COMMIT ;

SELECT * FROM prova;
2

Eliminare un numero di righe utilizzando il comando di cancellazione , ma non commettere il risultato . Questo mostrerà come cancellare protegge i dati da cancellazioni accidentali in condizioni normali . Il comando di eliminazione viene eseguito dalla riga di comando come segue :

SQL > DELETE FROM prova WHERE testdata LIKE ' A % ';

Questo cancella tutti i file con prefisso "A" e lasciare il riposare rimanendo

Rollback il risultato e visualizzare i risultati della tabella in questo modo: .

SQL > ROLLBACK ;

Questo invertire la precedente istruzione delete e la tabella dovrebbe ora essere impostato al suo stato originale . Questo è verificabile da:

SQL > SELECT * FROM prova;
3

Eseguire di nuovo il comando DELETE , quindi " COMMIT ", e "rollback ", prima di testare l'uscita come illustrato :

SQL > DELETE FROM prova WHERE testdata LIKE ' a % ​​';

SQL > COMMIT ;

SQL > ROLLBACK ;

SQL > SELECT * FROM prova;

Questo dimostra che la dichiarazione Oracle " DELETE " è stato efficace e ignorato la dichiarazione di rollback , a causa di una azione "commit" che si svolge subito dopo. Questo indica che tutte le righe che iniziano con " A" nel campo " testdata " scompaiono dal database e non sono recuperabili con una dichiarazione "rollback " .
TRUNCATE
4

Esegui una dichiarazione troncare sul tavolo di prova come segue :

SQL > TRUNCATE tABLE test ;
5

Rollback alla dichiarazione precedente come segue :

SQL > ROLLBACK ;
6

Selezionare gli elementi della tabella di prova come segue:

SQL > SELECT * FROM prova;

Questo non mostra elementi sul tavolo . La dichiarazione di "rollback " non funziona sul comando tronca e tutte le righe del database scompare .

Un'altra grande differenza da " DELETE" è che " TRUNCATE " funziona più veloce , ma non è in grado di filtrare i dati utilizzando una clausola "WHERE" ( a differenza di DELETE) .

 

software © www.354353.com