MariaDB存储过程

本文概述

  • 建立存储过程
  • 验证存储过程
  • MariaDB DROP存储过程
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:该参数可以由该过程引用, 并且该参数的值可以由该过程覆盖。
【MariaDB存储过程】语言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 = http://www.srcmini.com/50; label1: WHILE total_value < = 3000 DO SET total_value = total_value * 2; END WHILE label1; SET ending_value = total_value; END; // DELIMITER ;

MariaDB存储过程

文章图片
验证存储过程 现在你可以看到已创建名为” CalcValue” 的过程。
MariaDB存储过程

文章图片
你可以按以下方式引用新过程:
MariaDB存储过程

文章图片
MariaDB DROP存储过程 你可以使用以下命令删除过程:
句法:
DROP procedure [ IF EXISTS ] procedure_name;

参数说明:
procedure_name:它指定要删除的过程的名称。
例:
DROP procedure CalcValue;

MariaDB存储过程

文章图片
你可以看到该过程现在已被删除, 并且在列表中不可用。
MariaDB存储过程

文章图片

    推荐阅读