Si vous souhaitez une "sortie anticipée" pour une situation dans laquelle il n'y a pas eu d'erreur, utilisez la réponse acceptée publiée par @piotrm. Le plus souvent, cependant, vous serez renfloué en raison d'une condition d'erreur (en particulier dans une procédure SQL).
À partir de MySQL v5.5, vous pouvez lever une exception. Annulation des gestionnaires d'exceptions, etc. qui obtiendront le même résultat, mais d'une manière plus propre et plus poignante.
Voici comment:
DECLARE CUSTOM_EXCEPTION CONDITION FOR SQLSTATE '45000';
IF <Some Error Condition> THEN
SIGNAL CUSTOM_EXCEPTION
SET MESSAGE_TEXT = 'Your Custom Error Message';
END IF;
Remarque SQLSTATE '45000'
équivaut à une "condition d'exception définie par l'utilisateur non gérée". Par défaut, cela produira un code d'erreur de 1644
(qui a la même signification). Notez que vous pouvez lancer d'autres codes de condition ou codes d'erreur si vous le souhaitez (ainsi que des détails supplémentaires pour la gestion des exceptions).
Pour en savoir plus sur ce sujet, consultez:
https://dev.mysql.com/doc/refman/5.5/en/signal.html
Comment signaler une erreur dans une fonction MySQL
http://www.databasejournal.com/features/mysql/mysql-error-handling-using-the-signal-and-resignal-statements.html
Addenda
En relisant mon article, j'ai réalisé que j'avais quelque chose de plus à ajouter. Avant MySQL v5.5, il y avait un moyen d'émuler la levée d'une exception. Ce n'est pas exactement la même chose, mais c'était l'analogue: créer une erreur en appelant une procédure qui n'existe pas. Appelez la procédure par un nom qui est significatif afin d'obtenir un moyen utile de déterminer quel était le problème. Lorsque l'erreur se produit, vous verrez la ligne d'échec (en fonction de votre contexte d'exécution).
Par exemple:
CALL AttemptedToInsertSomethingInvalid;
Notez que lorsque vous créez une procédure, aucune validation n'est effectuée sur de telles choses. Ainsi, alors que dans quelque chose comme un langage compilé, vous ne pourriez jamais appeler une fonction qui n'était pas là, dans un script comme celui-ci, elle échouera simplement à l'exécution, ce qui est exactement ce que l'on souhaite dans ce cas!
IF tablename IS NOT NULL THEN
...;)