MySQL 8.0 リファレンスマニュアル


13.7.7.9 SHOW CREATE PROCEDURE ステートメント

SHOW CREATE PROCEDURE proc_name

このステートメントは、MySQL 拡張です。 これは、指定されたストアドプロシージャーを再作成するために使用できる正確な文字列を返します。 同様のステートメントである SHOW CREATE FUNCTION は、ストアドファンクションに関する情報を表示します (セクション13.7.7.8「SHOW CREATE FUNCTION ステートメント」を参照してください)。

いずれかのステートメントを使用するには、ルーチン DEFINER として指定されたユーザー、SHOW_ROUTINE 権限、グローバルレベルでの SELECT 権限、またはルーチンを含むスコープで付与された CREATE ROUTINEALTER ROUTINE または EXECUTE 権限を持っている必要があります。 CREATE ROUTINEALTER ROUTINE または EXECUTE のみがある場合、Create Procedure または Create Function フィールドに表示される値は NULL です。

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 は、このルーチンが関連付けられているデータベースの照合順序です。


関連キーワード:  ステートメント, CREATE, TABLE, DROP, FUNCTION, PROCEDURE, サブクエリー, SLAVE, 関数, REPLICA