Spec-Zone.ru › MySQL 8.4

15.7.7.10 Вывод определения хранимой процедуры

SHOW CREATE PROCEDURE proc_name

Данное утверждение является расширением MySQL. Оно возвращает точную строку, которую можно использовать для повторного создания именованной хранимой процедуры. Аналогичное утверждение, SHOW CREATE FUNCTION, отображает информацию о хранимых функциях (см. Раздел 15.7.7.9, «Выполнение SHOW CREATE FUNCTION»).

Для использования любого из этих утверждений, необходимо быть пользователем, указанным как владелец процедуры DEFINER, иметь привилегию SHOW_ROUTINE, иметь привилегию SELECT на глобальном уровне или иметь привилегию CREATE ROUTINE, ALTER ROUTINE или EXECUTE на уровне, включающем процедуру. Значение, отображаемое для поля Create Procedure или Create Function, будет NULL, если у вас есть только привилегии CREATE ROUTINE, ALTER ROUTINE или EXECUTE.

mysql> SHOW CREATE PROCEDURE test.citycount\G
*************************** 1. row ***************************
           Procedure: citycount
            sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
                      NO_ZERO_IN_DATE,NO_ZERO_DATE,
                      ERROR_FOR_DIVISION_BY_ZERO,
                      NO_ENGINE_SUBSTITUTION
    Create Procedure: CREATE DEFINER=`me`@`localhost`
                      PROCEDURE `citycount`(IN country CHAR(3), OUT cities INT)
                      BEGIN
                        SELECT COUNT(*) INTO cities FROM world.city
                        WHERE CountryCode = country;
                      END
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
  Database Collation: utf8mb4_0900_ai_ci

mysql> SHOW CREATE FUNCTION test.hello\G
*************************** 1. row ***************************
            Function: hello
            sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
                      NO_ZERO_IN_DATE,NO_ZERO_DATE,
                      ERROR_FOR_DIVISION_BY_ZERO,
                      NO_ENGINE_SUBSTITUTION
     Create Function: CREATE DEFINER=`me`@`localhost`
                      FUNCTION `hello`(s CHAR(20))
                      RETURNS char(50) CHARSET utf8mb4
                      DETERMINISTIC
                      RETURN CONCAT('Hello, ',s,'!')
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
  Database Collation: utf8mb4_0900_ai_ci

character_set_client — это сессионное значение системной переменной character_set_client во время создания процедуры. collation_connection — это сессионное значение системной переменной collation_connection во время создания процедуры. Database Collation — это кодировка базы данных, с которой связана процедура.

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

Spec-Zone.ru

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