数据库教程-mariadb教程-MariaDB过程

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

MariaDB程序是一个存储的程序,用来传递参数。它不像函数那样需要返回一个值(当然也不用返回)。

可以创建和删除像函数一样的过程。

1. 创建过程

可以像创建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中分配给此过程的名称。
  • Parameter:传入过程的一个或多个参数。创建过程时,可以声明三种类型的参数:
    • IN:参数可以被程序引用。 该参数的值不能被程序覆盖。
    • OUT:参数不能被程序引用,但参数的值可以被程序覆盖。
    • IN OUT:参数可以被程序引用,参数的值可以被程序覆盖。
  • LANGUAGE SQL:语法为可移植语法,但不会影响函数。
  • DETERMINISTIC:表示该函数将始终返回给定一组输入参数的一个结果。
  • NOT DETERMINISTIC:表示给定一组输入参数,该函数可能会返回不同的结果。 结果可能受到表格数据,随机数字或服务器变量的影响。
  • CONTAINS SQL:这是默认的。这是一个告知MariaDB该函数包含SQL的信息性子句,但数据库不验证它是真的。
  • NO SQL:这是一个信息性子句,不使用也不会影响功能。
  • READS SQL DATA:这是一个告知MariaDB的函数,它将使用SELECT语句读取数据,但不会修改任何数据。
  • MODIFIES SQL DATA:这是一个告知MariaDB的信息子句,该函数将使用INSERTUPDATEDELETE或其他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 ; 

打开HeidiSQL,执行上面创建语句 –

MariaDB过程

现在刷新左侧的testdb数据库,可以看到名为“CalcValue”的过程已创建。

MariaDB过程

编辑或查看这个过程,如下图所示 –

MariaDB过程

2. 调用过程

现在可以看到名为“CalcValue”的过程已创建。可以参考如下方式来调用过程:

MariaDB [testdb]> CALL CalcValue(@salary); Query OK, 0 rows affected (0.00 sec)  MariaDB [testdb]> select @salary; +---------+ | @salary | +---------+ |    3200 | +---------+ 1 row in set (0.00 sec) 

3. 删除过程

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

语法:

DROP procedure [ IF EXISTS ] procedure_name; 

参数说明:

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

示例:

DROP procedure CalcValue; 

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

MariaDB过程

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 mariadb教程 只为你绽放。

本文固定链接: http://kua0.com/2019/01/31/数据库教程-mariadb教程-mariadb过程/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注