Borrado de registros de forma múltiple en Oracle

En ocasiones es necesario hacer un borrado de registros en base a ciertas condiciones. Esto es más interesante cuando podemos relacionar alguna tabla para tomar la decisión en de que registros borrar. Aquí un pequeño ejemplo de la instrucción DELETE con la clausula EXISTS.

Digamos que tenemos una tabla donde esta un propietario con su respectivo vehículo que guarda en una pensión.

CREATE TABLE TPROPIETARIOS (ID_PROPIETARIO NUMBER(5), NOMBRE VARCHAR(35));

CREATE TABLE TAUTOS (ID_AUTO NUMBER(3), MARCA VARCHAR(40), DOBLETRACCION VARCHAR(2));

CREATE TABLE PENSION(ID_PENSION NUMBER(10), ID_AUTO NUMBER(3), ID_PROPIETARIO NUMBER(5), LUGARASIGNADO VARCHAR(10));

INSERT INTO TPROPIETARIOS VALUES (1, ‘E.P. COUSIN’);
INSERT INTO TPROPIETARIOS VALUES (2, ‘J.DULARTE’);
INSERT INTO TPROPIETARIOS VALUES (3, ‘L.VIVOGARAY’);
INSERT INTO TPROPIETARIOS VALUES (4, ‘R.BORGUE’);

INSERT INTO TAUTOS VALUES(1, ‘HUMMER H4’, ‘SI’);
INSERT INTO TAUTOS VALUES(2, ‘LINCONL MARK’, ‘SI’);
INSERT INTO TAUTOS VALUES(3, ‘FORD LOBO’, ‘SI’);
INSERT INTO TAUTOS VALUES(4, ‘MASERATI SPYDER’, ‘NO’);
INSERT INTO TAUTOS VALUES(5, ‘JAGUAR XF’, ‘NO’);
INSERT INTO TAUTOS VALUES(6, ‘MERCEDES BENZ LSK’, ‘NO’);

INSERT INTO TAUTOS VALUES(7, ‘BMW X5’, ‘NO’);

INSERT INTO PENSION VALUES(1, 1, 1, ‘F1C1’);
INSERT INTO PENSION VALUES(2, 6, 1, ‘F1C2’);
INSERT INTO PENSION VALUES(3, 2, 1, ‘F1C3’);
INSERT INTO PENSION VALUES(4, 6, 2, ‘F1C4’);
INSERT INTO PENSION VALUES(5, 5, 2, ‘F1C5’);
INSERT INTO PENSION VALUES(6, 4, 3, ‘F2C1’);
INSERT INTO PENSION VALUES(7, 5, 3, ‘F2C2’);
INSERT INTO PENSION VALUES(8, 1, 4, ‘F3C3’);
INSERT INTO PENSION VALUES(9, 3, 4, ‘F4C4’);

INSERT INTO PENSION VALUES(10, 7, 1, ‘F5C1’);

COMMIT;

Con esto tendríamos tres tablas una de propietarios (TPROPIETARIOS), una de autos por tipo (TAUTOS) y la de pensión (TPENSION). El dueño de la pensión desea quitar todos los autos doble tracción, para ello haríamos lo siguiente.

Aquí vemos la utilidad de DELETE con la clausula EXISTS, donde eliminará aquellos autos que se encuentran en el catalogo de autos y además que sean doble tracción, como se puede observar en la consulta anidada.

Si consultamos la tabla pensión observando el tipo de autos que se encuentran guardados, ya no tendremos vehículos de doble tracción.

Y con ello hemos realizado un borrado de varios registros basados en otra tabla.

Seguimos leyéndonos …

Profesor Miguel Araujo.

Deja un comentario