SHOW CREATE PROCEDURE proc_name
このステートメントは、MySQL 拡張です。 これは、指定されたストアドプロシージャーを再作成するために使用できる正確な文字列を返します。 同様のステートメントである SHOW CREATE FUNCTION
は、ストアドファンクションに関する情報を表示します (セクション13.7.7.8「SHOW CREATE FUNCTION ステートメント」を参照してください)。
いずれかのステートメントを使用するには、ルーチン DEFINER
として指定されたユーザー、SHOW_ROUTINE
権限、グローバルレベルでの SELECT
権限、またはルーチンを含むスコープで付与された CREATE ROUTINE
、ALTER ROUTINE
または EXECUTE
権限を持っている必要があります。 CREATE ROUTINE
、ALTER 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
は、このルーチンが関連付けられているデータベースの照合順序です。