Как создать функцию на сервере базы данных MySQL
В сегодняшней статье мы рассмотрим как создать функцию на сервере MySQL. Итак, что же такое функция.
В программировании функция — это часть бизнес-процесса или вычисления, инкапсулированная под именем функции. Когда вам нужно запустить процесс или расчет, вы можете сделать это, просто вызвав имя функции.
Вот пример функции в JavaScript:
function hello() {
console.log("Hello World")
}
hello()
В MySQL вы можете создать хранимую функцию, используя синтаксис CREATE FUNCTION. Основной синтаксис для создания функции в MySQL следующий:
CREATE FUNCTION [function name] (
[parameter name] [parameter type],
[parameter name] [parameter type],
...
)
RETURNS [data type] [DETERMINISTIC]
RETURN [expression]
Во-первых, вам нужно указать имя функции в [function name]. Далее вам нужно объявить любые параметры, которые вы должны получить для функции. Вы можете объявить столько параметров, сколько вам нужно, но лучше всего, чтобы одна функция имела от 0 до 5 параметров. Слишком большое количество параметров может запутать вас при последующем обслуживании программы. Получив параметры, укажите тип данных, возвращаемый функцией, с помощью ключевого слова RETURNS.
Вам также необходимо указать, находится ли функция DETERMINISTIC или NOT DETERMINISTIC рядом с ключевым словом RETURNS. DETERMINISTIC означает, что функция всегда будет возвращать один и тот же вывод для одного и того же ввода, что позволяет MySQL оптимизировать выполнение функции.
Если вы не уверены, просто укажите, DETERMINISTIC потому что это значение по умолчанию, которое MySQL будет использовать для функций.
Наконец, вам нужно указать [expression] возвращаемое функцией RETURN ключевое слово. Вот функция MySQL, похожая на функцию JavaScript выше:
CREATE FUNCTION hello ()
RETURNS VARCHAR(20) DETERMINISTIC
RETURN "Hello World";
Как только вы запустите приведенный выше оператор, вы можете запросить функцию с помощью оператора SELECT:
SELECT hello();
Имя функции MySQL уникально, что означает, что у вас может быть только одна функция с определенным именем. Запуск CREATE FUNCTION дважды вызовет, ERROR 1304 даже если одна и та же функция имеет разные параметры:
CREATE FUNCTION hello (
input1 VARCHAR(10)
Nfr)
RETURNS VARCHAR(20) DETERMINISTIC
RETURN "Hello World";
ERROR 1304 (42000): FUNCTION hello already exists
Чтобы изменить существующую функцию, вам нужно сначала удалить функцию, используя DROP FUNCTION синтаксис.
DROP FUNCTION IF EXISTS hello;
Таким образом, функции в MySQL позволяют производить некоторые действия и возвращать результат выполнения.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.