Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Новое на сайте
Топовые новости
Новое

MySQL

MySQL не поддерживает инструкцию ALTER FUNCTION, а также инструкции CREATE PROCEDURE и ALTER PROCEDURE.

Пользовательские функции, которые создаются в базе данных MySQL, по сути являются вызовами внешних функций.

CREATE [AGGREGATE] FUNCTION имя_функции RETURNS {STRING | REAL | INTEGER) SONAME имя_библиотеки_коллективного_пользования;

Где:

CREAТЕ [AGGREGATEJ FUNCTION имя_функции

Создается внешняя функция с именем имя_функции. Имя не может быть длиннее 64 символов. Модуль будет сохранен в директории mysql2/udf с расширением UDF. Если указано предложение AGGREGATE, то пользовательская функция должна возвращать агрегатное значение, такое, как SUMQ или AVGQ.

RETURNS {STRING REAL INTEGER}

Возвращаемое значение представляет собой тип STRING (символьные данные), REAL (значения с плавающей точкой) или INTEGER (целые числа).

SONAME имя_библиотечной_программы_коллективного_пользования

Указывается имя программы на C/C++, которая выполняет обработку. Данная программа коллективного использования может быть откомпилирована и встроена в MySQL или же может функционировать как независимая связываемая программа.

Созданную пользовательскую функцию MySQL можно вызывать как любую другую функцию, такую, как ABSQ или SOUNDEX().

Реализация инструкции CREATE FUNCTION в MySQL зависит от работы процедурного кода C/C++ в операционной системе, поддерживающей динамическую загрузку. Название программы C/C++ указывается в параметре библиотечной_программы_коллективного_пользования. Функция может быть скомпилирована прямо с сервером MySQL, тогда она будет доступна постоянно, или же может быть динамически вызываемой программой. Например, на сервере может находиться блок кода, используемый в следующей инструкции, создающей пользовательскую функцию.

CREATE FUNCTION fincLradius RETURNS INT SONAME ‘radius.so’

Источник