📜  MariaDB函数

📅  最后修改于: 2020-11-29 05:58:07             🧑  作者: Mango

MariaDB函数

MariaDB函数是一个存储程序,用于将参数传递给它们并返回一个值。

我们可以在MariaDB中创建和删除函数。

MariaDB创建功能

您可以在MariaDB中创建自己的函数:

句法:

CREATE 
[ DEFINER = { CURRENT_USER | user_name } ] 
FUNCTION function_name [ (parameter datatype [, parameter datatype]) ]
RETURNS return_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; 

参数说明

例:

在MariaDB数据库中创建函数CalcValue。

DELIMITER //
CREATE FUNCTION CalcValue ( starting_value INT )
RETURNS INT DETERMINISTIC
BEGIN
   DECLARE total_value INT;
   SET total_value = 0;
   label1: WHILE total_value <= 3000 DO
     SET total_value = total_value + starting_value;
   END WHILE label1;
   RETURN total_value;
END; //
DELIMITER ; 

DEFINER子句:这是一个可选子句。如果未指定,则定义者是创建函数的用户。如果要指定其他定义器,则必须包括DEFINER子句,其中user_name是函数的定义器。

function_name:它指定要在MariaDB中分配给此函数的名称。

return_datatype:它指定函数返回值的数据类型。

语言SQL:它具有可移植性的语法,但对函数没有影响。

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

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

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

NO SQL:不会使用的信息性子句,不会对函数产生影响。

READS SQL DATA:信息性子句,它告诉MariaDB该函数将使用SELECT语句读取数据,但不修改任何数据。

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

clarification_section:函数中声明局部变量的位置。

execute_section:函数中输入函数代码的位置。

验证

您可以看到程序已成功执行,并且创建了新函数。

现在,您可以按以下方式引用新函数:

MariaDB DROP功能

您可以非常轻松地从数据库中删除创建的函数。

句法:

DROP FUNCTION [ IF EXISTS ] function_name; 

参数说明

function_name:它指定要删除的函数的名称。

例:

我们创建了一个函数名称“ CalcValue”。现在删除函数。

DROP FUNCTION CalcValue; 

现在您可以看到该函数已删除,不再存在于列表中。