Named Conditions
So far, our examples have used conditions based on MySQL error
codes, SQLSTATE
codes, or
predefined named conditions (SQLEXCEPTION
,
SQLWARNING
, NOT FOUND
). These handlers do the job
required, but they do not result in particularly readable code, since
they rely on the hardcoding of literal error numbers. Unless you
memorize all or most of the MySQL error codes and SQLSTATE
codes (and expect everyone
maintaining your code to do the same), you are going to have to refer
to a manual to understand exactly what error a handler is trying to
catch.
You can improve the readability of your handlers by defining a
condition declaration, which associates a MySQL error code or SQLSTATE
code with a meaningful name that
you can then use in your handler declarations. The syntax for a
condition declaration is:
DECLAREcondition_name
CONDITION FOR {SQLSTATEsqlstate_code
|MySQL_error_code
};
Once we have declared our condition name, we can use it in our
code instead of a MySQL error code or SQLSTATE
code. So instead of the following
declaration:
DECLARE CONTINUE HANDLER FOR 1216 MySQL_statements
;
we could use the following more readable declaration:
DECLARE foreign_key_error CONDITION FOR 1216;
DECLARE CONTINUE HANDLER FOR foreign_key_error MySQL_statements
;
Tip
Create named conditions using condition declarations, and use these named conditions in your handlers to improve the readability and maintainability of your stored program code.
Get MySQL Stored Procedure Programming now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.