MariaDB процедуры

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

Что такое процедура в MariaDB?

В MariaDB процедура — это хранимая программа, в которую можно передавать параметры. Она не возвращает значение, как это делает функция.

Создать процедуру

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

Синтаксис

Синтаксис создания процедуры в MariaDB:

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;

DEFINER clause
Необязательный. Если не указано, определителем является пользователь, создавший процедуру. Если вы хотите указать другой определитель, вы должны включить предложение DEFINER, где user_name является определителем для процедуры.
procedure_name
Имя, которое нужно присвоить этой процедуре в MariaDB.
parameter
Один или несколько параметров переданы в процедуру. При создании процедуры есть три типа параметров, которые могут быть объявлены:

  1. IN. На параметр можно ссылаться в процедуре. Значение параметра не может быть перезаписано процедурой.
  2. OUT. Процедура не может ссылаться на параметр, но значение параметра может быть перезаписано процедурой.
  3. IN OUT. На параметр может ссылаться процедура, а значение параметра может быть перезаписано процедурой.
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 procedure [ IF EXISTS ] procedure_name;
procedure_name
Название процедуры, которую вы хотите удалить.

Пример

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

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