поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    9.2.1. Синтаксис CREATE FUNCTION/DROP FUNCTION

    CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|REAL|INTEGER}
           SONAME shared_library_name
    DROP FUNCTION function_name
    

    Определяемая пользователем функция (UDF) - это средство, позволяющее расширить MySQL за счет новой функции, которая работает подобно ``родным'' (встроенным) функциям MySQL, таким как ABS() и CONCAT().

    AGGREGATE - новая опция для версии MySQL 3.23. AGGREGATE - функция работает точно так же, как и ``родные'' GROUP-функции MySQL GROUP вроде SUM или COUNT().

    CREATE FUNCTION сохраняет имя, тип и имя разделяемой библиотеки функции в системной таблице mysql.func. Чтобы создавать и удалять функции, необходимо обладать привилегиями INSERT и DELETE для базы данных mysql.

    Все активные функции подгружаются при каждом запуске сервера, за исключением случая, когда mysqld запускается с опцией --skip-grant-tables. Тогда инициализация UDF пропускается и UDFы недоступны (активная функция - это функция, которая была загружена посредством CREATE FUNCTION и не удалена с помощью DROP FUNCTION).

    Инструкции по написанию определяемых пользователем функций находятся в разделе See Раздел 9.2, «Добавление новых функций в MySQL». Чтобы механизм UDF работал, функции должны быть написаны на C или C++, используемая операционная система должна поддерживать динамическую загрузку и mysqld должен быть скомпилирован динамически (а не статически).

    Отметим, что для того, чтобы работала AGGREGATE, таблица mysql.func должна содержать столбец type. В противном случае следует запустить сценарий mysql_fix_privilege_tables, чтобы внести нужные исправления.

     
    © 1997-2005 PHP Club Team
    Rambler's Top100