MariaDB 存储过程
MariaDB过程是一个存储程序,用于将参数传递给它。它不像函数那样返回值。
您可以创建和删除函数之类的过程。
创建过程
您可以像在MariaDB中创建函数一样创建过程。
语法:
CREATE
[ DEFINER = { CURRENT_USER | user_name } ]
PROCEDURE procedure_name
[ (parameter datatype [, parameter datatype]) ]
[ LANGUAGE SQL
| DETERMINISTIC
| NOT DETERMINISTIC
| { CONTAINS SQL
| NO SQL
| READS SQL DATA
| MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'comment_value'
BEGIN
declaration_section
executable_section
END;
参数说明
DEFINER子句: 可选。
procedure_name: 要分配的名称
参数: 一个或多个参数传递到该过程中。创建过程时,可以声明三种类型的参数:
IN: 。该过程可以引用该参数。该参数的值不能被该过程覆盖。
OUT: 该参数不能被该过程引用,但是该参数的值可以被过程覆盖。
IN OUT: : 该参数可以由该过程引用,并且该参数的值可以由该过程覆盖。
语言SQL: 是可移植性的语法,但对函数没有影响。
确定性: : 这意味着该函数将始终返回给定的一个结果一组输入参数。
不确定性: : 这意味着在给定一组输入参数的情况下,该函数可能会返回不同的结果。结果可能会受到表数据,随机数或服务器变量的影响。
CONTAINS SQL: 。这是默认设置。这是一个告知性条款,可以告诉MariaDB该函数包含SQL,但是数据库无法验证这是否正确。
否SQL:
读取SQL数据: 这是一个提供信息的子句,它告诉MariaDB该函数将使用SELECT语句读取数据,但不修改任何内容。数据。
修改SQL数据: 这是一个信息性条款,告诉MariaDB该函数将使用INSERT,UPDATE,DELETE或其他DDL语句修改SQL数据。
declaration_section: : 在过程中声明局部变量的位置。
executable_section: 在过程中输入代码的位置
示例:
在MariaDB数据库中创建一个名为" CalcValue"的过程。
DELIMITER //
CREATE procedure CalcValue ( OUT ending_value int )
DETERMINISTIC
BEGIN
DECLARE total_value INT;
SET total_value = 50;
label1: while total_value <= 3000 DO
SET total_value = total_value * 2;
END while label1;
SET ending_value = total_value;
END; //
DELIMITER ;
验证过程
您现在可以看到已创建名为" CalcValue"的过程。
您可以如下引用新程序:
MariaDB DROP过程
您可以使用以下命令删除过程:
语法:
DROP procedure [ if EXISTS ] procedure_name;
参数说明:
过程名称: 它指定要删除的过程的名称。
示例:
DROP procedure CalcValue;
您可以看到该过程现在已被删除,并且在列表中不可用。