个性化阅读
专注于IT技术分析

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:在MariaDB中分配给此过程的名称。

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

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

OUT:该过程无法引用该参数, 但是该过程可以覆盖该参数的值。

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

语言SQL:该语言具有可移植性, 但对功能没有影响。

确定性:这意味着该函数将始终在给定一组输入参数的情况下返回一个结果。

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

包含SQL:这是默认值。它是一条信息性的子句, 告诉MariaDB该函数包含SQL, 但是数据库未验证这是否正确。

NO SQL:这是一个翔实的子句, 不会使用, 不会对函数产生影响。

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

修改SQL数据:这是一条信息性条款, 告诉MariaDB该函数将使用INSERT, UPDATE, DELETE或其他DDL语句修改SQL数据。

clarification_section:过程中声明局部变量的位置。

execute_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 ;
MariaDB存储过程1

验证存储过程

现在你可以看到已创建名为” CalcValue”的过程。

MariaDB存储过程2

你可以按以下方式引用新过程:

MariaDB存储过程3

MariaDB DROP存储过程

你可以使用以下命令删除过程:

句法:

DROP procedure [ IF EXISTS ] procedure_name;

参数说明:

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

例:

DROP procedure CalcValue;
MariaDB存储过程4

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

MariaDB存储过程5
赞(0)
未经允许不得转载:srcmini » MariaDB存储过程

评论 抢沙发

评论前必须登录!