В чем разница между этими 3 терминами в контексте базы данных MySQL:
- хранимая процедура
- сохраненная функция
- сохраненная процедура
Также встроенные функции, такие как функции даты и времени (например, WEEKDAY()
и т.д.), Рассматриваются как что?
В чем разница между этими 3 терминами в контексте базы данных MySQL:
Также встроенные функции, такие как функции даты и времени (например, WEEKDAY()
и т.д.), Рассматриваются как что?
Google - ваш друг. Первое совпадение для "процедуры функции mysql-процедуры" таково: http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html
Краткое резюме:
Сохраненная процедура - это либо процедура, либо функция.
Процедура вызывается с помощью инструкции CALL и может только возвращать значения с использованием выходных переменных.
Функция может вызываться изнутри оператора точно так же, как любая другая функция, и может возвращать скалярное значение.
Здесь я попытался обобщить различия между функциями и процедурами:
SELECT func_name FROM DUAL
, а процедуры - нет.Разница между функцией MySQL и процедурой mysql
Функция MYSQL
Он должен возвращать значение.
IN
,OUT
иINOUT
не могут использоваться в функции. Но возвращаемый тип данных должен быть объявлен при создании функции. функция может вызываться из оператора SQL. Функция возвращает одно значение.
Процедура MYSQL
Возвращаемые значения не являются обязательными, но могут использовать параметр OUT для процедура возвращается. Можно использовать
IN
|OUT
|INOUT
. Процедура не может быть вызван из SQL Statement. процедура возвращает несколько значения с помощью параметровOUT
илиINOUT
.
ПРОЦЕДУРЫ ПРОТИВ ФУНКЦИЙ
1. PROCEDURES may or may not return a value but FUNCTION must return a value 2. PROCEDURES can have input/output parameter but FUNCTION only has input parameter. 3. We can call FUNCTION from PROCEDURES but cannot call PROCEDURES from a function. 4. We cannot use PROCEDURES in SQL statement like SELECT, INSERT, UPDATE, DELETE, MERGE etc. but we can use them with FUNCTION. 5. We can use try-catch exception handling in PROCEDURES but we cannot do that in FUNCTION. 6. We can use transaction in PROCEDURES but it is not possible in FUNCTION.
Функция должна возвращать значение, но в Хранимой процедуре она является необязательной (процедура может возвращать значения нуля или n). Функции могут иметь только входные параметры, тогда как процедуры могут иметь параметры ввода/вывода. Функции можно вызывать из процедуры, тогда как процедуры не могут быть вызваны из функции.