PingKai Logo下载

CALL

CALL 语句用于调用当前数据库中已创建的存储过程,与 MySQL 中 CALL 语句的行为类似。

语法图

CallStmt
CALL ProcedureName ( parameterOpts )
ProcedureName
Identifier . Identifier
parameterOpts
parameterOpt parameterOpt , parameterOpts
ParameterOpt
string expr @ string

示例

调用存储过程:

use test
delimiter $$
create procedure t1()
begin
select 1;
select 2;
end $$
create procedure t2(inNum int)
begin
select inNum;
select 2;
end $$
delimiter ;
show procedure status;
call t1;
call t2(2);
ysql> use test
Database changed
mysql> delimiter $$
mysql> create procedure t1()
    -> begin
    -> select 1;
    -> select 2;
    -> end $$
ERROR 1304 (42000): PROCEDURE t1 already exists
mysql> create procedure t2(inNum int)
    -> begin
    -> select inNum;
    -> select 2;
    -> end $$
Query OK, 0 rows affected (0.01 sec)

mysql> delimiter ;
mysql> show procedure status;
+------+------+-----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db   | Name | Type      | Definer | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+------+------+-----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| test | t1   | PROCEDURE | root@%  | 2023-08-10 17:36:42 | 2023-08-10 17:36:42 | DEFINER       | test    | utf8mb4              | utf8mb4_bin          | utf8mb4_bin        |
| test | t2   | PROCEDURE | root@%  | 2023-08-10 17:47:13 | 2023-08-10 17:47:13 | DEFINER       |         | utf8mb4              | utf8mb4_bin          | utf8mb4_bin        |
+------+------+-----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
2 rows in set (0.00 sec)

mysql> call t1;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> call t2(2);
+-------+
| inNum |
+-------+
|     2 |
+-------+
1 row in set (0.00 sec)

+---+
| 2 |
+---+
| 2 |
+---+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)