Spec-Zone.ru › MySQL 8.4

27.2 Использование хранимых процедур

  • 27.2.1 Синтаксис хранимых процедур
  • 27.2.2 Хранимые процедуры и привилегии MySQL
  • 27.2.3 Метаданные хранимых процедур
  • 27.2.4 Хранимые процедуры, функции, триггеры и LAST_INSERT_ID()

MySQL поддерживает хранимые процедуры (процедуры и функции). Хранимые процедуры — это набор SQL-команд, которые могут быть сохранены на сервере. После этого клиенты не должны постоянно повторно вызывать отдельные инструкции, а могут вместо этого обратиться к хранимой процедуре.

Хранимые процедуры могут быть особенно полезны в определенных ситуациях:

  • Когда несколько клиентских приложений написаны на разных языках или работают на разных платформах, но им необходимо выполнять одни и те же операции с базой данных.

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

Хранимые процедуры могут повысить производительность, потому что между сервером и клиентом нужно передавать меньше информации. Однако это увеличивает нагрузку на сервер базы данных, поскольку большая часть работы выполняется на стороне сервера, а меньшая — на стороне клиента (приложения). Учтите это, если множество клиентских машин (например, веб-серверов) обслуживаются одним или несколькими серверами базы данных.

Хранимые процедуры также позволяют создавать библиотеки функций на сервере базы данных. Это функция, общая для современных языков программирования, которые позволяют реализовать такой дизайн внутренне (например, с помощью классов). Использование этих возможностей языка клиентского приложения полезно для программиста даже за пределами использования базы данных.

MySQL использует синтаксис SQL:2003 для хранимых процедур, который также используется в DB2 от IBM. Все здесь описанный синтаксис поддерживается, а любые ограничения и расширения документированы при необходимости.

Дополнительные ресурсы

  • При работе с хранимыми процедурами и функциями может быть полезен Форум пользователей хранимых процедур.

  • Ответы на некоторые часто задаваемые вопросы о хранимых процедурах в MySQL см. в разделе A.4, “MySQL 8.4 FAQ: Хранимые процедуры и функции”.

  • Существуют некоторые ограничения на использование хранимых процедур. См. раздел 27.8, «Ограничения хранимых программ».

  • Двоичная регистрация для хранимых процедур выполняется, как описано в разделе 27.7, «Двоичная регистрация хранимых программ».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/stored-routines.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API