Збережені процедури mysql (частина 1)

Що ж являють собою збережені процедури?

Починаючи з версії MySQL 5.0 з'явилася можливість використання збережених процедур. По простому збережена процедура це процедура зберігається в базі даних на сервері.

Чим корисні збережені процедури?

  • Вони запускають у всіх середовищах, і немає необхідності перестроювання логіки. З того моменту як ви створили збережену процедуру, не важливо який додаток ви використовуєте для виклику процедури. Також не важливо якою мовою ви програмуєте, логіка процедури міститься на сервері БД.
  • Вони можуть скоротити мережевий трафік. Складні, повторювані завдання можна обробляти за допомогою процедур на сервері Баз даних, без необхідності відсилання проміжних результатів з додатком.

простий приклад

Ця процедура просто виведе словосполучення «Привіт світ» на англ. - «Hello world»

А тепер викличемо її:

параметри

Значна перевага збережених процедур в тому, що вони можуть як приймати, так і передавати значення.

Існує три типи параметрів:
  • IN. За замовчуванням. Цей параметр приймається процедурою і може змінюватися всередині процедуру, але не може зміняться поза процедурою.
  • OUT. Ніякі значення не передаються (це означає що вони мають значення NULL), але вони можуть бути змінені всередині процедури, а також змінені поза процедурою.
  • INOUT. Поєднує в собі властивості параметрів IN і OUT. Значення може передаватися в процедуру, змінюватися всередині процедури і бути доступним поза процедурою.

Даний приклад зберігається процедури демонструє використання IN параметра. Так як параметр IN використовується за умовчанням, його можна не обов'язково писати.

Збережені процедури mysql (частина 1)

приклад OUT

Збережені процедури mysql (частина 1)

SHOW PROCEDURE STATUS - повертає список збережених процедур, з деякими даними про них.
SHOW CREATE PROCEDURE - повертає код конкретної процедури.

Роздільники і процедури містять кілька операторів

Збережені процедури, звичайно, не дуже корисні якщо вони містять одну інструкцію. Як же нам відрізнити інструкцію всередині процедури від кінця цієї процедури. Ми можемо створити інший роздільник інструкції для кінця оператора CREATE PROCEDURE.

Зверніть увагу на те, що немає крапки з комою після символу «|», яку ми будемо використовувати в процедурі. Ви повинні вибирати роздільник, який не буде використовуватися у вашій процедурі, і він може бути більше ніж один символ.

Коли ми викликали процедуру, MySQL все ще використовувала як роздільник «|», але не крапку з комою, з цього оператори не запускалися після крапки з комою.

змінні процедури

У збережених процедурах також можна визначити локальні змінні оператором DECLARE.

Заповнення змінних з існуючих таблиць

Схожі статті