MariaDB 存储过程

2025年3月17日 | 阅读 3 分钟

MariaDB 存储过程是一个用于向其中传递参数的存储程序。它不像函数那样返回值。

您可以像创建和删除函数一样创建和删除存储过程。


创建存储过程

您可以像在 MariaDB 中创建函数一样创建您的存储过程。

语法

参数解释

DEFINER 子句: 可选。

procedure_name: 在 MariaDB 中为此存储过程指定的名称。

参数: 传递给存储过程的一个或多个参数。创建存储过程时,可以声明三种类型的参数

IN: 存储过程可以引用该参数。该参数的值不能被存储过程覆盖。

OUT: 存储过程不能引用该参数,但该参数的值可以被存储过程覆盖。

IN OUT: 存储过程可以引用该参数,并且该参数的值可以被存储过程覆盖。

LANGUAGE SQL: 它是用于可移植性的语法,但不会对函数产生影响。

DETERMINISTIC: 这意味着给定一组输入参数,该函数将始终返回一个结果。

NOT DETERMINISTIC: 这意味着给定一组输入参数,该函数可能会返回不同的结果。结果可能会受到表数据、随机数或服务器变量的影响。

CONTAINS SQL: 这是默认值。这是一个信息性子句,它告诉 MariaDB 该函数包含 SQL,但数据库不会验证这是真的。

NO SQL: 这是一个信息性子句,未被使用,并且不会对函数产生影响。

READS SQL DATA: 这是一个信息性子句,它告诉 MariaDB 该函数将使用 SELECT 语句读取数据,但不会修改任何数据。

MODIFIES SQL DATA: 这是一个信息性子句,它告诉 MariaDB 该函数将使用 INSERT、UPDATE、DELETE 或其他 DDL 语句修改 SQL 数据。

declaration_section: 在存储过程中声明局部变量的地方。

executable_section: 在存储过程中输入存储过程代码的地方。

示例

在 MariaDB 数据库中创建一个名为 "CalcValue" 的存储过程。

MariaDB Procedure 1

验证存储过程

您现在可以看到名为 "CalcValue" 的存储过程已创建。

MariaDB Procedure 2

您可以按如下方式引用您的新存储过程

MariaDB Procedure 3

MariaDB DROP 存储过程

您可以使用以下命令删除存储过程

语法

参数解释

procedure_name: 它指定您要删除的存储过程的名称。

示例

MariaDB Procedure 4

您可以看到该存储过程现在已被删除,并且它在列表中不可用。

MariaDB Procedure 5