Er zijn twee manieren van het verwijderen van records in Oracle . Een daarvan is het gebruik van de " dood alle " situatie waarin de TRUNCATE opdracht volledig leegt de database tabel , en de andere is de DELETE- commando, dat aspirant- records kunnen filteren en keren de actie in dergelijke gevallen als het per ongeluk verwijderen . De veiligste manier om dit proces aan te tonen is om een test tabel te maken en probeer de aspirant commando's uit in plaats van experiment op een bestaande database . Instructies DELETE 1 Maak een test tafel en vullen met data om het resultaat te testen . De gegevens ingebracht toont het gebruik van de delete en het afkappen verklaring , als volgt : CREATE TABLE test ( testdata VARCHAR2 ( 2 ) ) ; INSERT INTO test ( testdata ) VALUES ( ' AX ' ) ; INSERT INTO test ( testdata ) VALUES ( ' AY ' ) ; INSERT INTO test ( testdata ) VALUES ( ' AZ ' ) ; INSERT INTO -test ( testdata ) VALUES ( ' BX ' ) ; INSERT INTO test ( testdata ) VALUES ( ' DOOR ' ) ; INSERT INTO test ( testdata ) VALUES ( ' BZ ' ) op ; < br INSERT INTO test ( testdata ) VALUES ( ' CX ' ) > ; INSERT INTO test ( testdata ) VALUES ( " CY " ) ; INSERT INTO test ( testdata ) WAARDEN ( "CZ" ) ; INSERT INTO test ( testdata ) VALUES ( 'DX' ) ; INSERT INTO test ( testdata ) VALUES ( ' DY ' ) op ; INSERT INTO test ( testdata ) VALUES ( ' DZ ' ) ; COMMIT ; SELECT * FROM -test ; kopen van 2 Wis een aantal rijen met de opdracht delete , maar het resultaat is niet begaan . Dit zal laten zien hoe delete beschermt gegevens tegen ongewild wissen onder normale omstandigheden . De opdracht delete loopt vanaf de opdrachtregel als volgt : SQL Aanmelden> DELETE FROM -test WAAR testdata LIKE ' A % ' ; Dit zal alle rijen voorafgegaan door " A " te verwijderen en laat de rusten resterende terugdraaien het resultaat en de resultaten van de tabel als volgt: . SQL > ROLLBACK ; Dit zal de vorige delete statement en de tafel om te keren moet nu worden terug gezet naar de oorspronkelijke staat . Dit is controleerbaar door : SQL > SELECT * FROM -test ; 3 Voer de opdracht DELETE weer , dan " COMMIT , " en " ROLLBACK " voor het testen van de output zoals afgebeeld : SQL Aanmelden> DELETE FROM -test WAAR testdata LIKE ' A % ' ; SQL > COMMIT ; SQL > ROLLBACK ; SQL Aanmelden> SELECT * FROM -test ; Dit toont aan dat de Oracle " DELETE " verklaring effectief is geweest en negeerde de rollback verklaring , als gevolg van een ' COMMIT ' actie plaatsvindt onmiddellijk daarna . Dit geeft aan dat alle rijen beginnen met " A " in het veld " testdata " verdwijnen uit de database en kunnen niet voor vergoeding met een " ROLLBACK " statement . TRUNCATE 4 Uitvoeren van een afgeknotte verklaring over de test tabel als volgt : SQL > tRUNCATE tAFEL testen ; 5 terugdraaien van de vorige verklaring als volgt : SQL Aanmelden> ROLLBACK ; Select artikelen 6 van de test tabel als volgt : SQL > SELECT * FROM -test ; Dit toont geen items op de tafel . De " ROLLBACK " statement werkt niet op het afkappen commando en alle rijen in de database verdwijnen . Een ander belangrijk verschil met " DELETE " is dat " afkappen " werkt sneller , maar is niet in staat om te filteren op de gegevens met behulp van een " WHERE " -clausule ( in tegenstelling tot DELETE ) .
|