If you want to ignore a condition, you can declare a CONTINUE handler for it and associate it with an empty block.
mysql> mysql> CREATE TABLE t (s1 int,primary key (s1)); Query OK, 0 rows affected (0.03 sec) mysql> mysql> delimiter // mysql> mysql> CREATE PROCEDURE handlerdemo () -> BEGIN -> DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1; -> DECLARE CONTINUE HANDLER FOR SQLWARNING BEGIN END; -> SET @x = 1; -> INSERT INTO test.t VALUES (1); -> SET @x = 2; -> INSERT INTO test.t VALUES (1); -> SET @x = 3; -> END; -> // Query OK, 0 rows affected (0.00 sec) mysql> mysql> Delimiter ; mysql> mysql> CALL handlerdemo(); Query OK, 0 rows affected (0.00 sec) mysql> mysql> mysql> SELECT @x; +------+ | @x | +------+ | 3 | +------+ 1 row in set (0.00 sec) mysql> mysql> mysql> drop procedure handlerdemo; Query OK, 0 rows affected (0.00 sec) mysql> mysql> drop table t; Query OK, 0 rows affected (0.02 sec) mysql>
11.44.Condition HANDLER | ||||
11.44.1. | Declaring a Condition and Handler | |||
11.44.2. | Condition and Handler in action | |||
11.44.3. | DECLARE CONTINUE HANDLER FOR NOT FOUND SET | |||
11.44.4. | Checking flag | |||
11.44.5. | Using while to check the condition | |||
11.44.6. | DECLARE EXIT HANDLER FOR | |||
11.44.7. | Checking Exit flag | |||
11.44.8. | Using the IF statement to verify 'CONTINUE HANDLER' | |||
11.44.9. | The example associates a handler with SQLSTATE 23000, which occurs for a duplicate-key error | |||
11.44.10. | To ignore a condition |