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
子句,其中user_name
是该函数的定义者。SELECT
语句读取数据但不修改任何数据的信息性子句。INSERT
,UPDATE
,DELETE
或其他DDL语句修改SQL数据的信息性子句。可以看到程序成功执行并创建了一个新的函数。现在可以调用这个新创建的函数了,如下所示:
要删除MariaDB数据库中的自定义函数很容易。比如要上我们上面创建的函数,请参考以下语法。
语法:
DROP FUNCTION [ IF EXISTS ] function_name;
参数说明
示例:
在上面,我们已经创建了一个名为“CalcValue”的函数。假设现在要删除这个函数,可通过以下语句 -
DROP FUNCTION CalcValue;
现在,可以看到该函数已被删除,不再出现在左侧列表中。
或通过查询下面语句 -
MariaDB [testdb]> SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='testdb'; Empty set (0.01 sec)