MySQL – хранимые процедуры, триггеры.

Что такое хранимые процедуры?

Это процедуры создаваемые на сервере и вызываемые из клиента. В статье про транзакции я уже создавал хранимую процедуру, теперь предлагаю рассмотреть вопрос более подробно.

Хранимая процедура (stored procedure) – это самостоятельный объект СУБД, вызываемый с клиентской машины. Преимущество в том, что не тратятся ресурсы клиентской машины, недостаток – в размывании логики. Приведу тот же пример, который уже был разобран в посте про транзакции.

Основные моменты – меняем delimiter, чтобы сервер не срабатывал на каждую “точку с запятой”

Параметры процедуры могут быть in  по умолчанию, out, а также inout. В примере ниже, я рассматриваю вставку данных в таблицу, с помощью транзакции внутри хранимой процедуры. Вначале обрабатываем исключительную ситуацию declare exit handler for sqlexception…, и затем, собственно процедура;

Как создать хранимую процедуру?

(Забыл отобразить на рисунке команду Delimiter//)

5

Если сохранить уровень изоляции serializable, то всё должно быть более менее гладко. Проверка работы процедуры даёт положительный результат.

Как вызвать хранимую процедуру из консольного клиента MySQL?

6

 

Как удалить хранимую процедуру?

или в нашем примере…

 

 

Что такое триггер?

 Это разновидность хранимой процедуры, представляющий собой набор инструкций на языке SQL, автоматически выполняющийся в моменты…

BEFORE INSERT и AFTER INSERT…

BEFORE UPDATE и AFTER UPDATE

BEFORE DELETE и AFTER DELETE…

Вот здесь классная, подробная статья по работе с триггерами.


[block id=”mysql-first-steps”]

Добавить комментарий