SQL - Trigger en SQL Oracle

   
Vista:

Trigger en SQL Oracle

Publicado por Kursakez (2 intervenciones) el 08/01/2015 14:12:58
Buenas tardes, soy nuevo en el foro. Mi problema es que tengo que comprobar que no se pueda eliminar un cliente con un impago en sus pedidos. He de decir que está restringido un impago por cliente, es decir, que no se pueda asignar más de un pedido a un cliente si este cliente tiene un pedido asignado sin pagar.

Bueno lo que yo quiero comprobar en mi Trigger es que el cliente que elimino no tenga un impago. No sé muy bien como implementar esto, porque el cliente podría tener más de un pedido asignado. Dejo el código:

CREATE OR REPLACE TRIGGER checkPago
BEFORE DELETE ON CLIENTES
FOR EACH ROW
DECLARE
pagReal PEDIDOS.PAGO_REALIZADO%TYPE;
excepcionImpago exception;
BEGIN
SELECT PAGO_REALIZADO INTO pagReal FROM CLIENTES NATURAL JOIN PEDIDOS;
IF(pagReal='F')THEN
RAISE excepcionImpago;
END IF;
EXCEPTION
WHEN excepcionImpago THEN
DBMS_OUTPUT.PUT_LINE('No se puede eliminar este cliente porque tiene impagos en sus pedidos');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Se ha producido otra excepción');
END;
/

Creo que al poner ese código no me va a realizar bien lo que quiero porque, ¿como sé que se comprueban todos los pagos realizados?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Trigger en SQL Oracle

Publicado por Isaias (690 intervenciones) el 08/01/2015 23:13:17
¿Por qué no implementas la verificación en el procedimiento que hace el DELETE a la tabla CLIENTE?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Trigger en SQL Oracle

Publicado por Kursakez (2 intervenciones) el 09/01/2015 12:14:51
¿A qué te refieres?¿Puedes decirme cómo lo harías tú? Muchas gracias por anticipado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Trigger en SQL Oracle

Publicado por Isaias (690 intervenciones) el 09/01/2015 19:18:43
Te comento. los triggers, fueron creados para verificar la integridad referencial (DRI), no para desarrollar una logica del negocio.

Aqui mi duda es: ¿Como afectas la tabla CLIENTE?

Si es mediante un procedimiento, entonces, este, deberia hacer la verficacion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar