Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: hayate en 23 Agosto 2013, 12:39 pm



Título: raise_aplication_error y otra duda
Publicado por: hayate en 23 Agosto 2013, 12:39 pm
Hola
Tengo la siguiente duda,¿Cual es el equivalente de RAISE_APLICATION_ERROR en MySQL? ¿O como puedo programar excepciones de usuario?

Código:
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


Título: Re: raise_aplication_error y otra duda
Publicado por: Saberuneko en 25 Noviembre 2013, 19:09 pm
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
  1. IF NEW.PVP <> OLD.PVP THEN

Aunque como ya lo tienes con:
Código
  1. WHEN (NEW.PVP<OLD.PVP)

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