MariaDB函數(shù)是一個存儲的程序,用于將參數(shù)傳遞給它們并獲取函數(shù)的返回值。
我們可以在MariaDB中創(chuàng)建和刪除函數(shù)。
可以在MariaDB中創(chuàng)建自己的函數(shù):
語法:
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數(shù)據(jù)庫中創(chuàng)建一個函數(shù)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 ;
參數(shù)說明
DEFINER子句,其中user_name是該函數(shù)的定義者。SELECT語句讀取數(shù)據(jù)但不修改任何數(shù)據(jù)的信息性子句。INSERT,UPDATE,DELETE或其他DDL語句修改SQL數(shù)據(jù)的信息性子句。
可以看到程序成功執(zhí)行并創(chuàng)建了一個新的函數(shù)?,F(xiàn)在可以調(diào)用這個新創(chuàng)建的函數(shù)了,如下所示:

要刪除MariaDB數(shù)據(jù)庫中的自定義函數(shù)很容易。比如要上我們上面創(chuàng)建的函數(shù),請參考以下語法。
語法:
DROP FUNCTION [ IF EXISTS ] function_name;
參數(shù)說明
示例:
在上面,我們已經(jīng)創(chuàng)建了一個名為“CalcValue”的函數(shù)。假設(shè)現(xiàn)在要刪除這個函數(shù),可通過以下語句 -
DROP FUNCTION CalcValue;
現(xiàn)在,可以看到該函數(shù)已被刪除,不再出現(xiàn)在左側(cè)列表中。

或通過查詢下面語句 -
MariaDB [testdb]> SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='testdb';
Empty set (0.01 sec)