Hola gente que tal? invoco vuestro conocimiento, estoy haciendo un experimento, quiero usar mysql para validad datos mediante los trigger.
Explico, planteo el problema y pongo el codigo que tengo.
Explicacion: Tengo 3 tablas, usuarios, muros, mensajes.
usuarios:
id_usuario | id_muro | otros_campos
mensajes:
id_mensaje | id_usuario | id_muro | otros_campos
muros:
id_muro | otros_campos
un usuario, puede ir conectandose a diferentes muros, salir de uno, entrar en otro o no estar en ninguno, cuando lo hace voy actualizando el id_muro del usuario para saber en que muro esta actualmente.
el usuario solo puede enviar mensajes al muro que esta actualmente conectado, es decir que si intenta mandar un mensaje a un muro y no esta conectado no deberia poder.
Problema:
Tengo un trigger before insert en la tabla mensajes, lo que quiero hacer es validar dentro del trigger si el tipo esta habilitado y sino, hacer explotar la consulta.
Logre que explote haciendo uso de un "bug" de mysql pero si en el futuro lo arreglan esta tecnica va a dejar de funcar, por lo que quiero algo que sea para esto si es que lo hay.
Codigo del trigger before insert de mensajes:
Código MySQL:
Ver original IF(NEW.id_mural
!= id_mural
) THEN -- Con este set el trigger exlota al no ocurrir la validacion.
-- no se porque mysql permite poner el nombre de una variable no declarada
-- supongo que es algun bug del parsing o algo
-- pero aca me gustaria hacer explotar la consulta
SET NEW.id_mural
= variable_salvaje_aparece
;
Seria genial poder devolver algun codigo de error personalizado o algun texto mezclado con el error de mysql que despues pueda parsear o algo asi como para saber porque fallo, si es por la validacion o por otro error en los datos