跳到主要内容

SHOW CREATE PROCEDURE

SHOW CREATE PROCEDURE 语句用于显示已创建存储程序的信息。

SHOW CREATE PROCEDURE 语句的语法如下:

SHOW CREATE PROCEDURE proc_name

要使用此语句,您必须是 DEFINER 所定义的用户,并具有 SHOW_ROUTINE 权限,具有全局级别的 SELECT 权限,或者对该例程具有 CREATE ROUTINEALTER ROUTINEEXECUTE 权限。如果只有 REATE ROUTINEALTER ROUTINEEXECUTE 权限,则 Create Procedure(创建过程)或 Create Function(创建函数)字段值显示为 NULL

SHOW CREATE PROCEDURE 输出如下信息:

  • Procedure:存储过程名称。

  • sql_mode:执行存储过程时生效的 SQL 模式。

  • Create Procedure :定义存储过程的 CREATE PROCEDURE 语句。

  • character_set_client:创建存储过程时 character_set_client 系统变量在当前会话的值。

  • collation_connection:创建存储过程时 collation_connection 系统变量在当前会话的值。

  • Database Collation:与存储过程相关联的数据库的排序规则。

存储过程的信息也可从 INFORMATION_SCHEMA ROUTINES 表中获得。详细信息请参见 INFORMATION_SCHEMA PARAMETERS

SHOW CREATE PROCEDURE 语句的示例如下:

SHOW CREATE PROCEDURE proc_name;

返回结果如下所示:

+-------------+----------+-----------------+-----------------------+----------------------+--------------------+
| Procedure | sql_mode | Create Procedure | character_set_client | collation_connection | Database Collation |
+----------+----------+-----------------+-----------------------+----------------------+-----------------------+
| proc_name | STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE |CREATE PROCEDURE `test`.`proc_name`() BEGIN DECLARE var_name VARCHAR(20) DEFAULT 'ZhangSan'; SET var_name = 'LiSi'; SELECT var_name; END | utf8mb4 | utf8mb4_general_ci | utf8mb4_general_ci |
+----------+----------+-----------------+-----------------------+----------------------+-----------------------+
1 row in set