Cuando el valor es 1 estás definiendo un error personalizado de usuario:
Cita: To signal a generic SQLSTATE value, use '45000', which means “unhandled user-defined exception.”
Se dispararía ante cualquier excepción o condición no contemplada en el maneo de errores estandar de MySQL.
En el caso 0, se refiere a este error:
Cita: Error: 1249 SQLSTATE: 01000 (ER_SELECT_REDUCED)
Mensaje: Select %u fué reducido durante optimización
donde "%u" es reemplazado por MySQL por el valor del select que el parser reemplazó.
Pero de todos modos toda al explicación de ese ejemplo la tienes en el mismo capitulo del manual de referencia...
¿Se te dificulta el inglés técnico?
Por cierto, para implementar SP, ¿cuánta práctica tienes en ellos?
En principio no debería ser mu complicado, porque simpemente las validaciones e inserciones que piensas hacer en el TRIGGER las pones en el SP, y procedes en consecuencia. Incluso puedes poner parámetros de retorno para obtener codigos personalizados de error y mensajes adecuados, sin tener que meterte a provocar excepciones.
Los TRIGGERs no son una forma adecuada porque al ejecutarse todas las veces que hagas un INSERT, en un sistema de alto impacto de ABM, afecta la performance.