SHOW CREATE PROCEDURE proc_name
        This statement is a MySQL extension. It returns the exact string
        that can be used to re-create the named stored procedure. A
        similar statement, SHOW CREATE
        FUNCTION, displays information about stored functions
        (see Section 15.7.7.9, “SHOW CREATE FUNCTION Statement”).
      
        To use either statement, you must be the user named as the
        routine DEFINER, have the
        SHOW_ROUTINE privilege, have the
        SELECT privilege at the global
        level, or have the CREATE
        ROUTINE, ALTER ROUTINE,
        or EXECUTE privilege granted at a
        scope that includes the routine. The value displayed for the
        Create Procedure or Create
        Function field is NULL if you have
        only CREATE ROUTINE,
        ALTER ROUTINE, or
        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 is the session value of
        the character_set_client system
        variable when the routine was created.
        collation_connection is the session value of
        the collation_connection system
        variable when the routine was created. Database
        Collation is the collation of the database with which
        the routine is associated.
      
        For a JavaScript stored routine that was created with
        USING to import one or more libraries, the
        full list of libraries is included in the output of
        SHOW CREATE PROCEDURE, even for libraries
        listed which do not actually exist. This is true also for
        SHOW CREATE FUNCTION.