gpt4 book ai didi

mysql - PROCEDURE 的参数数量不正确

转载 作者:行者123 更新时间:2023-11-29 04:19:05 26 4
gpt4 key购买 nike

定义过程:

DELIMITER $$
CREATE PROCEDURE SP_Reporting(IN tablename VARCHAR(20))
proc_label:BEGIN
IF tablename IS NULL THEN
SELECT 'Null detect';
LEAVE proc_label;
END IF;

SELECT 'after';
END;
$$
DELIMITER ;

调用过程:

CALL SP_Reporting();

错误:

ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE cds.SP_Reporting ; expected 1, got 0

如何默认传递 var,如 SP_Reporting(IN tablename = 'default value' VARCHAR(20))

最佳答案

在创建存储过程时,可以为输入赋值,因此在调用过程时无需传递参数。

我们通常分配 NULL 并且为了使参数可选,我们使用这种方法。

tablename VARCHAR(20) = NULL

你的完整脚本:

DELIMITER $$
CREATE PROCEDURE SP_Reporting(IN tablename VARCHAR(20) = NULL)
proc_label:BEGIN
IF tablename IS NULL THEN
SELECT 'Null detect';
LEAVE proc_label;
END IF;

SELECT 'after';
END;
$$
DELIMITER ;

编辑

MySQL 不接受可选参数。因此,一种方法是在您的存储过程中传递 NULL 值,并在您的过程中使用 IF 语句检查它。

DELIMITER $$
CREATE PROCEDURE SP_Reporting(IN tablename VARCHAR(20))
proc_label:BEGIN
IF tablename IS NULL THEN
-- Do something;
ELSE
-- Do something else;
END IF;
END;
$$
DELIMITER ;

关于mysql - PROCEDURE 的参数数量不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30908365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com