1

我需要创建一个 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

而且这段代码不能按照我想要的方式工作。有没有办法在声明参数时将默认值赋给变量?

4

1 回答 1

2

就在这里。

如果你想在你的函数/过程中设置变量的默认值,你可以这样做:

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;

在你的函数/过程中。

于 2012-11-23T14:52:02.770 回答