Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разница между хранимой процедурой и функцией 
:(
    Опции темы
Royan
Дата 25.11.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

Репутация: нет
Всего: 15



Пытаюсь найти информацию по вопросу специфичную для MySQL. Может кто знает где есть толковое и детальное объяснение.


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
skyboy
Дата 25.11.2007, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



между хранимой процедурой и хранимой функцией? или между хранимой процедурой и UDF?

UDF - размещается в dll или другом варианте динамически подключаемой библиотеки. В процессе конфигурации, функция из этой библиотеки подключается к серверу, чтоб сервер мог её использовать.

Хранимые же функции/процедуры создаются на основе SQL-кода при помощи конструкций CREATE FUNCTION и CREATE PROCEDURE.
Отличие между процедурой и функцией: если функция может использоваться в составе SQL-запроса типа SELECT/INSERT/UPDATE(DML-конструкциях) для ограничения(секция where, к примеру) или возвращения значения(SELECT `id`,now() FROM `table`), в процедуры в этой роли использоваться не могут. Процедуры вызываются только с использованием вызова через конструкцию call.

Если функции - для расширения возможностей запросов, то процедуры - для автоматизации какого-либо набора действий. К примеру, очистки группы таблиц или создания связанных. процедуры могут возвращать значения и результаты запросов(result set), но эти результаты нельзя использовать в качестве источника в секции FROM.
Кроме того, процедуры принимают параметры и могут эти параметры изменять(in/out параметры), функции же являются "чистыми" - т.е. не могут менять принятые параметры, а только возвращать значение.

Различие мужде хранимыми функциями и udf  - в скорости выполнения последних. С другой стороны(явного указания нет - это моя личное мнение) udf не может обращаться таблицам - просто получает значение и оперирует только ими(ну, ещё данными, которые может получить программа, запущенная в ОС: текущее время, имя пользователя , путь и т.д.), а хранимые функции вполне могут содержать запросы к произвольным таблицам/БД.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0795 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.