“Conocimientos software>Software de base de datos

¿Cómo diferenciar entre truncar y Eliminar en Oracle

2012/6/25
Hay dos formas de eliminar registros en Oracle . Una de ellas es utilizar el " matar a todos ", situación en la que el comando TRUNCATE vacía por completo la tabla de base de datos, y el otro es el comando DELETE, que puede filtrar los registros prospectivos y revertir la acción en casos tales como la eliminación accidental . La manera más segura de demostrar este proceso es la creación de una tabla de prueba y probar los comandos posibles cabo en lugar de experimentar con una base de datos existente. Instrucciones
DELETE
1

Crear una tabla de prueba y rellenarla con los datos para probar el resultado. Los datos introducidos se muestra el uso de la supresión y la declaración truncada , de la siguiente manera :

CREATE TABLE test ( testdata VARCHAR2 ( 2 ));

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

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

INSERT INTO prueba ( testdata ) VALUES ( ' AZ ');

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

INSERT INTO prueba ( testdata ) VALUES ( ' BY' ) ;

INSERT INTO prueba ( testdata ) VALUES ( ' BZ ');

INSERT INTO ( testdata ) VALUES ( ' CX ' ) prueba ;

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

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

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

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

INSERT EN ( testdata ) VALUES ( ' DZ ' ) prueba ;

COMMIT ;

SELECT * FROM prueba ;
2

Eliminar un número de filas con el comando delete , pero no comprometen el resultado. Esto le mostrará cómo eliminar protege los datos contra el borrado accidental en condiciones normales . El comando delete se ejecuta desde la línea de comandos de la siguiente manera :

SQL > ELIMINAR DE DONDE prueba testdata LIKE ' A% ' ;

Esto eliminará todas las filas con el prefijo "A" y dejar el descansar restante

Rollback el resultado y mostrar los resultados de la tabla así: .

SQL > ROLLBACK ;

Esto invertirá la instrucción delete anterior y la tabla debe ahora ajustarse de nuevo a su estado original. Esto es verificable por:

SQL > SELECT * FROM prueba ;
3

Ejecute el comando DELETE otra vez, luego "Confirmar " y " ROLLBACK " antes de probar la salida como se ilustra :

SQL > DELETE FROM prueba donde testdata LIKE ' A% ' ;

SQL > COMMIT ;

SQL > ROLLBACK ;

SQL > SELECT * FROM prueba ;

Esto demuestra que la declaración de Oracle " BORRAR" ha sido eficaz y ha ignorado la instrucción de reversión , debido a una acción " COMMIT " que tiene lugar inmediatamente después. Esto indica que todas las líneas que comienzan con "A " en el campo " testdata " desaparecen de la base de datos y no son recuperables con una declaración " ROLLBACK " .
TRUNCATE
4 < p> Ejecutar una sentencia truncado en la tabla de prueba de la siguiente manera :
SQL > prueba

TRUNCATE TABLE;
5

Rollback la declaración anterior de la siguiente manera :

SQL > ROLLBACK ;
6

Seleccione los elementos de la tabla de prueba de la siguiente manera :

SQL > SELECT * FROM prueba ;

no muestra elementos de la tabla. La declaración " ROLLBACK " no funciona en el comando TRUNCATE y todas las filas de la base de datos de desaparecer .

Otra diferencia importante de " BORRAR" es que " TRUNCATE " funciona más rápido, pero no es capaz de filtrar los datos mediante una cláusula "where" (a diferencia de DELETE) .

Software de base de datos
Basic Filemaker 9 Ayuda para configurar el acceso remoto
Cómo utilizar Sharepoint para la entrada de datos
Cómo crear la tabla con claves externas
Cómo lidiar con apóstrofes en cadenas SQL
Cómo anexar Con una búsqueda de no coincidentes en el Acceso
Acerca de Computer Forensic Software
Códigos de Minería Patrón frecuentes
Cómo convertir un formato de fecha en SQL
Conocimientos Informáticos © http://www.ordenador.online