August 26
Ci sono due modi di rimozione di record in Oracle. Uno è quello di utilizzare la situazione "uccidere tutti", dove il comando TRUNCATE svuota completamente la tabella del database, e l'altro è il comando DELETE, in grado di filtrare i futuri dischi e invertire l'azione in questi casi, come la cancellazione accidentale. Il modo più sicuro per dimostrare questo processo è quello di creare una tabella di test e provare i comandi potenziali fuori piuttosto che esperimento su un database esistente.
1 Creare una tabella di test e compilarlo con i dati per verificare il risultato. I dati inseriti dimostra l'uso della cancellazione e la dichiarazione Tronca, come segue:
CREATE TABLE test (testdata VARCHAR2 (2));
INSERT INTO prova (testdata) VALORI ( 'AX');
INSERT INTO prova (testdata) VALORI ( 'AA');
INSERT INTO test (testdata) VALORI ( 'AZ');
INSERT INTO test (testdata) VALORI ( 'BX');
INSERT INTO prova (testdata) VALORI ( 'con');
INSERT INTO prova (testdata) VALORI ( 'BZ');
INSERT INTO test (testdata) VALORI ( 'CX');
INSERT INTO test (testdata) VALORI ( 'CY');
INSERT INTO prova (testdata) VALORI ( 'CZ');
INSERT INTO test (testdata) VALORI ( 'DX');
INSERT INTO prova (testdata) VALORI ( 'DY');
INSERT INTO prova (testdata) VALORI ( 'DZ');
COMMETTERE;
SELECT * FROM prova;
2 Eliminare un numero di righe utilizzando il comando di eliminazione, ma non commettere il risultato. Questo mostra come cancellare protegge i dati contro l'eliminazione accidentale in circostanze normali. Il comando delete viene eseguito dalla riga di comando come segue:
SQL> DELETE FROM WHERE prova testdata LIKE 'A%';
Questo cancellerà tutte le righe prefisso "A" e lasciare il resto rimanente.
Rollback il risultato e visualizzare i risultati della tabella in questo modo:
SQL> ROLLBACK;
Questo invertire la precedente istruzione DELETE e la tabella dovrebbe essere arretrato al suo stato originale. Questo è verificabile da:
SQL> SELECT * FROM prova;
3 Eseguire il comando DELETE di nuovo, poi "commit" e "ROLLBACK" prima di testare l'uscita come illustrato:
SQL> DELETE FROM WHERE prova testdata LIKE 'A%';
SQL> COMMIT;
SQL> ROLLBACK;
SQL> SELECT * FROM prova;
Questo dimostra che l'oracolo "CANCELLA" dichiarazione è stata efficace e ignorato la dichiarazione di rollback, a causa di una "commit" l'azione che si svolge subito dopo. Questo indica che tutte le righe che iniziano con "A" nel campo "testdata" scompaiono dal database e non sono ripetibili con un'istruzione "ROLLBACK".
4 Eseguire una dichiarazione troncare al banco di prova come segue:
SQL> Test TRUNCATE TABLE;
5 Rollback l'istruzione precedente come segue:
SQL> ROLLBACK;
6 Selezionare le voci dalla tabella di prova come segue:
SQL> SELECT * FROM prova;
Questo dimostra articoli sul tavolo. L'affermazione "ROLLBACK" non funziona sul comando TRUNCATE e tutte le righe del database scomparire.
Un'altra grande differenza da "ELIMINA" è che "TRUNCATE" funziona più veloce, ma non è in grado di filtrare i dati utilizzando una clausola "WHERE" (a differenza DELETE).