MariaDB教程

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 ; 
MariaDB程序1

验证过程

您现在可以看到已创建名为" CalcValue"的过程。
MariaDB程序2
您可以如下引用新程序:
MariaDB程序3

MariaDB DROP过程

您可以使用以下命令删除过程:
语法:
DROP procedure [ if EXISTS ] procedure_name; 
参数说明:
过程名称: 它指定要删除的过程的名称。
示例:
DROP procedure CalcValue; 
MariaDB Procedure 4
您可以看到该过程现在已被删除,并且在列表中不可用。
MariaDB程序5
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4