В этом учебном пособии вы узнаете, как создавать и удалять функции в MariaDB с синтаксисом и примерами.
Что такое функция в MariaDB?
В MariaDB функция - это хранимая программа, в которую можно передавать параметры, а затем возвращать значение.
Создать функцию
Так же, как вы можете создавать функции на других языках, вы можете создавать свои собственные функции в MariaDB. Давайте внимательнее посмотрим.
Синтаксис
Синтаксис создания функции в MariaDB:
[ 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;
- DEFINER clause
- Необязательный. Если не указано, определителем является пользователь, создавший функцию. Если вы хотите указать другой определитель, вы должны включить предложение DEFINER, где user_name является определителем для функции.
- function_name
- Имя, назначаемое этой функции в MariaDB.
- parameter
- Один или несколько параметров переданы в функцию. При создании функции все параметры считаются параметрами IN (не параметрами OUT или INOUT), где на параметры может ссылаться функция, но они не могут быть перезаписаны функцией.
- return_datatype
- Тип данных возвращаемого значения функции.
- LANGUAGE SQL
- Это синтаксис для мобильности, но не будет влиять на функцию.
- DETERMINISTIC
- Это означает, что функция всегда будет возвращать один результат при заданном наборе входных параметров.
- NOT DETERMINISTIC
- Это означает, что функция может возвращать другой результат при заданном наборе входных параметров. На результат могут влиять данные таблицы, случайные числа или переменные сервера.
- CONTAINS SQL
- Это по умолчанию. Это информативное предложение, которое сообщает MariaDB, что функция содержит SQL, но база данных не проверяет, что это правда.
- NO SQL
- Информативное предложение, которое не используется и не окажет влияния на функцию.
- READS SQL DATA
- Информативное предложение, которое сообщает MariaDB, что функция будет читать данные, используя операторы SELECT, но не изменяет никаких данных.
- MODIFIES SQL DATA
- Информативное предложение, которое сообщает MariaDB, что функция будет изменять данные SQL, используя INSERT, UPDATE, DELETE или другие операторы DDL.
- declaration_section
- Место в функции, где вы объявляете локальные переменные.
- executable_section
- Место в функции, где вы вводите код для функции.
Пример
Рассмотрим пример, который показывает, как создать функцию в MariaDB:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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 ; |
Затем вы можете ссылаться на вашу новую функцию следующим образом:
1 |
SELECT CalcValue (1000); |
Удалить функцию
Как только вы создали свою функцию в MariaDB, вам может понадобится удалить ее из базы данных.
Синтаксис
Синтаксис удаления функции в MariaDB:
- function_name
- Название функции, которую вы хотите удалить.
Пример
Рассмотрим пример того, как удалить функцию в MariaDB.
Например:
1 |
DROP FUNCTION CalcValue; |
В этом примере удаляется функция с именем CalcValue.