MariaDB функции

В этом учебном пособии вы узнаете, как создавать и удалять функции в MariaDB с синтаксисом и примерами.

Что такое функция в MariaDB?

В 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;

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:

Затем вы можете ссылаться на вашу новую функцию следующим образом:

Удалить функцию

Как только вы создали свою функцию в MariaDB, вам может понадобится удалить ее из базы данных.

Синтаксис

Синтаксис удаления функции в MariaDB:

DROP FUNCTION [ IF EXISTS ] function_name;
function_name
Название функции, которую вы хотите удалить.

Пример

Рассмотрим пример того, как удалить функцию в MariaDB.
Например:

В этом примере удаляется функция с именем CalcValue.