У чому полягає різниця між цими 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. процедура повертає кілька значень за допомогою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 значень). Функції можуть мати лише вхідні параметри, тоді як процедури можуть мати вхідні / вихідні параметри. Функції можна викликати з процедури, тоді як процедури не можна викликати з функції.