在存储过程中使用IF逻辑调用存储过程?
要在存储过程中调用存储过程,语法如下 –
If yourInputValue > 100 then
call yourProcedureName1();
else
call yourProcedureName2();
end If ;
END
让我们来实现上述语法。为了实现以上概念,让我们创建一个存储过程 –
mysql> delimiter //
mysql> create procedure Hello_Stored_Procedure()
-> BEGIN
-> select 'Hello World!!!';
-> END
-> //
Query OK, 0 rows affected (0.18 sec)
创建第二个存储过程的查询如下 –
mysql> create procedure Hi_Stored_Procedure()
-> BEGIN
-> select 'Hi!!!';
-> END
-> //
Query OK, 0 rows affected (0.17 sec)
以下查询演示了使用IF逻辑在存储过程中调用存储过程 –
mysql> DELIMITER //
mysql> create procedure test(IN input int)
-> BEGIN
-> If input > 100 then
-> call Hello_Stored_Procedure();
-> else
-> call Hi_Stored_Procedure();
-> end If ;
-> END
-> //
Query OK, 0 rows affected (0.18 sec)
现在可以通过call调用存储过程 –
mysql> delimiter;
mysql> call test(110);
这将产生以下输出 –
+ ---------------- +
| Hello World !!! |
+ ---------------- +
| Hello World !!! |
+ ---------------- +
1行记录(用时0.00秒)
查询OK,共影响0行(用时0.02秒)
阅读更多:MySQL 教程