Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个MySQL过程变量,该变量在未提供时初始化_Mysql_Variables_Procedure - Fatal编程技术网

创建一个MySQL过程变量,该变量在未提供时初始化

创建一个MySQL过程变量,该变量在未提供时初始化,mysql,variables,procedure,Mysql,Variables,Procedure,我需要创建一个MYSQL过程,该过程接受多个参数并使用它们。但是,在不存在的情况下,参数变量会选择一些“默认”值并继续。与PHP中处理伪函数重载的方式类似 这个代码就是我能想到的 CREATE PROCEDURE PROC_INS_CONTENT_TEST(IN DATA_VAL LONGTEXT) BEGIN IF (DATA_VAL IS NULL) THEN SET DATA_VAL='DEFAULT'; END IF; INSERT INTO CONTENT_TEST (

我需要创建一个MYSQL过程,该过程接受多个参数并使用它们。但是,在不存在的情况下,参数变量会选择一些“默认”值并继续。与PHP中处理伪函数重载的方式类似

这个代码就是我能想到的

CREATE PROCEDURE PROC_INS_CONTENT_TEST(IN DATA_VAL LONGTEXT)
BEGIN
    IF (DATA_VAL IS NULL) THEN SET DATA_VAL='DEFAULT'; END IF;
    INSERT INTO CONTENT_TEST (DATA) VALUES (DATA_VAL);
END
这段代码并没有按照我希望的方式工作。在声明参数时,是否有方法将默认值分配给右侧变量?

如果要在函数/过程的变量上设置默认值,可以执行以下操作:

CREATE PROCEDURE PROC_INS_CONTENT_TEST(IN DATA_VAL LONGTEXT)
BEGIN
    DECLARE my_data_double DOUBLE DEFAULT 0;
    DECLARE my_data_varchar VARCHAR(20) DEFAULT 'default_value';
    DECLARE DATA_VAL LONGTEXT DEFAULT 'default_value';
    DECLARE my_data_integer INT DEFAULT 0;
END
或者,如果要指定值,可以执行以下操作:

SET my_data_value = 12345;

在您的函数/过程中。

看来MySQL真的不支持我所需要的。但这更接近我的要求。但在调用过程时,如果没有必需的参数,它仍然不能防止错误。非常感谢。