![]() |
|
Модераторы: skyboy |
![]()
|
|
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Пытаюсь найти информацию по вопросу специфичную для MySQL. Может кто знает где есть толковое и детальное объяснение.
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 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 не может обращаться таблицам - просто получает значение и оперирует только ими(ну, ещё данными, которые может получить программа, запущенная в ОС: текущее время, имя пользователя , путь и т.д.), а хранимые функции вполне могут содержать запросы к произвольным таблицам/БД. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |