raise_aplication_error y otra duda

Iniciado por hayate, 23 Agosto 2013, 12:39 PM

0 Miembros y 1 Visitante están viendo este tema.

hayate

Hola
Tengo la siguiente duda,¿Cual es el equivalente de RAISE_APLICATION_ERROR en MySQL? ¿O como puedo programar excepciones de usuario?


CREATE OR REPLACE TRIGGER T_BAJAR_PRECIOS
    BEFORE UPDATE OF PVP ON ARTICULOS
    FOR EACH ROW
    WHEN (NEW.PVP<OLD.PVP)
BEGIN
  RAISE_APPLICATION_ERROR(-20002,'LOS PRECIOS NO SE PUEDEN BAJAR');
END;

y tengo otra duda,¿El "BEFORE UPDATE OF PVP" el "OF PVP" como se hace en MySQL, lo he buscado pero no lo he encontrado?

PD:Este script es de oracle.

Gracias de antemano

Saberuneko

En MySQL 5.5 han metido SIGNAL, que es similar al raise_application_error:
http://dev.mysql.com/doc/refman/5.5/en/signal.html


Respecto al OF, en MySQL aparentemente no se puede, pero puedes ponerle un condicional para que sólo arranque cuando se cambie el valor en cuestión.
Código (sql) [Seleccionar]
IF NEW.PVP <> OLD.PVP THEN

Aunque como ya lo tienes con:
Código (sql) [Seleccionar]
WHEN (NEW.PVP<OLD.PVP)

Esto resultaría redundante e inútil en este caso. :-\