Mega Code Archive

 
Categories / MySQL Tutorial / Procedure Function
 

The example associates a handler with SQLSTATE 23000, which occurs for a duplicate-key error

mysql> mysql> CREATE TABLE t (s1 int,primary key (s1)); Query OK, 0 rows affected (0.08 sec) mysql> mysql> delimiter // mysql> mysql> CREATE PROCEDURE handlerdemo ()     -> BEGIN     ->   DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1;     ->   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> SELECT @x; +------+ | @x   | +------+ | 3    | +------+ 1 row in set (0.00 sec) mysql> mysql> drop procedure handlerdemo; Query OK, 0 rows affected (0.01 sec) mysql> mysql> drop table t; Query OK, 0 rows affected (0.00 sec) mysql>