Spec-Zone.ru › MySQL 9.2

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 9.2 FAQ: Хранимые процедуры и функции».

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

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

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

Spec-Zone.ru

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