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>
Name (required)
email (will not be published) (required)
Website