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 < p > 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) .