Збережені процедури MySQL (частина 2)
У цій частині статті допишемо розпочату в попередній статті збережену процедуру і навчимося створювати збережені mysql функції.
І так нам залишилося вказати значення для останньої змінної PostID. Як значення їй буде присвоєно результат, який поверне функція GetPostID, яку зараз і створимо.
створення функції
Для початку закриваємо поточну форму створення процедури, натиснувши на кнопку c написом Go. Потім в цьому ж вікні знову натискаємо на напис Add routine, з'явиться знайома форма, заповнимо її.
Так само можна вказати додаткові параметри:
Is deterministic - детермінована функція завжди повертає один і той же результат при однакових вхідних параметрах інакше вона є не детермінованою. У нашому випадку ставимо галочку.
Definer і Security type параметри безпеки, в даному прикладі залишимо їх без змін.
SQL data access має кілька значень:
NO SQL - не містить sql.
Contains SQL - містить вбудовані sql функції оператора, які не читають, не пишуть і не змінюють дані в базі даних. Наприклад, установка значення змінної: SET name = значення;
READS SQL DATA - тільки читання даних, без будь-якої модифікації даних, вказується для запиту SELECT.
MODIFIES SQL DATA - зміна або внесення даних, в базу даних, вказується для запитів: INSERT, UPDATE, але при цьому не повинен бути присутнім запит SELECT.
В нашій функції використовується запит SELECT, вкажемо READS SQL DATA.
Після того як всі поля заповнені, натискаємо на кнопку з написом Go.
Повертаємося на вкладку Routines і відредагуємо нашу процедуру, натиснувши на кнопку edit.
Дамо зміною PostID як значення результат, який поверне функція GetPostID.
Виклик процедури, що
Повертаємося на вкладку Routines і натискаємо на напис Execute
Якщо помилок немає, то відкриваємо сторінку і дивимося на результат.
Другий спосіб виконати процедуру на сервері.
Відкриваємо вкладку SQL
За допомогою оператора CALL виробляємо виклик нашої процедури