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)