文档首页
MySQL 9.0 参考手册
相关文档 下载本手册

MySQL 9.0 参考手册  /  ...  /  SHOW CREATE PROCEDURE 语句

15.7.7.10 SHOW CREATE PROCEDURE 语句

SHOW CREATE PROCEDURE proc_name

此语句是 MySQL 扩展。它返回可用于重新创建指定存储过程的精确字符串。类似的语句,SHOW CREATE FUNCTION,显示有关存储函数的信息(参见 第 15.7.7.9 节,“SHOW CREATE FUNCTION 语句”)。

要使用任一语句,您必须是作为例程 DEFINER 命名的用户,拥有 SHOW_ROUTINE 权限,拥有全局级别的 SELECT 权限,或拥有在包含例程的范围内授予的 CREATE ROUTINEALTER ROUTINEEXECUTE 权限。如果您只拥有 CREATE ROUTINEALTER ROUTINEEXECUTE,则 Create ProcedureCreate 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 系统变量的会话值。 数据库排序规则 是与例程关联的数据库的排序规则。