热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MariaDB函数

MariaDB函数是一个存储的程序,用于将参数传递给它们并获取函数的返回值。我们可以在MariaDB中创建和删除函数。1.MariaDB创建函数可以在MariaDB中创建自己的函数

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

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

1. 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;

1. 创建函数

在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:它指定函数返回值的数据类型。
  • 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函数》

2. 调用函数

可以看到程序成功执行并创建了一个新的函数。现在可以调用这个新创建的函数了,如下所示:

《MariaDB函数》

3. 删除函数

要删除MariaDB数据库中的自定义函数很容易。比如要上我们上面创建的函数,请参考以下语法。

语法:

DROP FUNCTION [ IF EXISTS ] function_name;

参数说明

  • function_name:它指定想要删除的函数的名字。

示例:

在上面,我们已经创建了一个名为“CalcValue”的函数。假设现在要删除这个函数,可通过以下语句 &#8211;

DROP FUNCTION CalcValue;

现在,可以看到该函数已被删除,不再出现在左侧列表中。

《MariaDB函数》

或通过查询下面语句 &#8211;

MariaDB [testdb]> SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='testdb';
Empty set (0.01 sec)


    推荐阅读
    author-avatar
    wtc21232
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有