El trigger before insert no puede "cachar" un error que no se ha producido cuando se invoca (el SQL code ocurrirá un instante después, cuando se intente aplicar el registro a la bd). El trigger after tampoco servirá, pues dado que el error ya ocurrió, nunca llega a dispararse.
En general, no podes capturar en el trigger un error que se generará por la inserción del registro en la bd.
Podrias hacer un select sobre la misma tabla verificando si ya existe un valor con la misma clave para elevar tu propia excepción, pero esto solo añadirá carga al servidor, a mi juicio, innecesaria.
¿Por que no capturas el error desde donde está intentando insertarse el registro?
Saludos.
|