Home  >  Article  >  Database  >  MySQL存储过程相互调用并获得错误码

MySQL存储过程相互调用并获得错误码

WBOY
WBOYOriginal
2016-06-07 14:54:261465browse

演示如何在存储过程中调用另外一个存储过程,并获取执行的错误信息 MySQL mysqlmysql delimiter $$mysqlmysql CREATE PROCEDURE myProc() - MODIFIES SQL DATA - BEGIN - DECLARE l_status VARCHAR(20); - - CALL myProc1(l_status); - IF l_status='Duplicat

演示如何在存储过程中调用另外一个存储过程,并获取执行的错误信息
MySQL
mysql>
mysql> delimiter $$
mysql>
mysql> CREATE PROCEDURE myProc()
    ->      MODIFIES SQL DATA
    -> BEGIN
    ->      DECLARE l_status VARCHAR(20);
    ->
    ->     CALL myProc1(l_status);
    ->        IF l_status='Duplicate Entry' THEN
    ->               SELECT CONCAT('Warning: using existing definition for location ') AS warning;
    ->      END IF;
    -> END$$
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> CREATE PROCEDURE myProc1(OUT out_status VARCHAR(30))
    -> BEGIN
    ->    set out_status = 'Duplicate Entry';
    -> END$$
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql>
mysql> delimiter ;
mysql> call myProc();
+--------------------------------------------------+
| warning                                          |
+--------------------------------------------------+
| Warning: using existing definition for location  |
+--------------------------------------------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

mysql> drop procedure myProc;
Query OK, 0 rows affected (0.00 sec)

mysql> drop procedure myProc1;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn