MariaDB程序是一個(gè)存儲(chǔ)的程序,用來(lái)傳遞參數(shù)。它不像函數(shù)那樣需要返回一個(gè)值(當(dāng)然也不用返回)。
可以創(chuàng)建和刪除像函數(shù)一樣的過(guò)程。
可以像創(chuàng)建MariaDB中的函數(shù)一樣創(chuàng)建過(guò)程。
語(yǔ)法:
CREATE
[ DEFINER = { CURRENT_USER | user_name } ]
PROCEDURE procedure_name [ (parameter datatype [, parameter 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;
參數(shù)說(shuō)明
SELECT語(yǔ)句讀取數(shù)據(jù),但不會(huì)修改任何數(shù)據(jù)。INSERT,UPDATE,DELETE或其他DDL語(yǔ)句修改SQL數(shù)據(jù)。在MariaDB數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)名為“CalcValue”的過(guò)程。參考以下實(shí)現(xiàn)代碼 -
DELIMITER //
CREATE procedure CalcValue ( OUT ending_value INT )
DETERMINISTIC
BEGIN
DECLARE total_value INT;
SET total_value = 50;
label1: WHILE total_value <= 3000 DO
SET total_value = total_value * 2;
END WHILE label1;
SET ending_value = total_value;
END; //
DELIMITER ;
打開HeidiSQL,執(zhí)行上面創(chuàng)建語(yǔ)句 -

現(xiàn)在刷新左側(cè)的testdb數(shù)據(jù)庫(kù),可以看到名為“CalcValue”的過(guò)程已創(chuàng)建。

編輯或查看這個(gè)過(guò)程,如下圖所示 -

現(xiàn)在可以看到名為“CalcValue”的過(guò)程已創(chuàng)建??梢詤⒖既缦路绞絹?lái)調(diào)用過(guò)程:
MariaDB [testdb]> CALL CalcValue(@salary);
Query OK, 0 rows affected (0.00 sec)
MariaDB [testdb]> select @salary;
+---------+
| @salary |
+---------+
| 3200 |
+---------+
1 row in set (0.00 sec)
可以使用以下命令刪除過(guò)程:
語(yǔ)法:
DROP procedure [ IF EXISTS ] procedure_name;
參數(shù)說(shuō)明:
示例:
DROP procedure CalcValue;
可以看到現(xiàn)在過(guò)程已經(jīng)被刪除,并且在列表中不可見。
