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

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

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