• 20. ROUTINES


    20. ROUTINES

    ROUTINES表提供有关存储例程(存储过程和存储函数)的信息。 ROUTINES表不包含内置SQL函数或用户定义函数(UDF)。

    名为mysql.proc Name的列表示与INFORMATION_SCHEMA ROUTINES表列对应的mysql.proc表列(如果有)。

    ROUTINES表有以下列:

    • SPECIFIC_NAME :例程的名称。
    • ROUTINE_CATALOG :例程所属目录的名称。该值始终为def。
    • ROUTINE_SCHEMA :例程所属schema(database)的名称
    • ROUTINE_NAME :例程的名称。
    • ROUTINE_TYPE :存储过程的PROCEDURE ,存储函数的FUNCTION。
    • DATA_TYPE :如果例程是存储函数,则返回值数据类型。如果例程是存储过程,则此值为空。
      DATA_TYPE值只是类型名称,没有其他信息。 DTD_IDENTIFIER值包含类型名称以及可能的其他信息,例如精度或长度。
    • CHARACTER_MAXIMUM_LENGTH:对于存储的函数字符串返回值,以字符为单位的最大长度。如果例程是存储过程,则此值为NULL。
    • CHARACTER_OCTET_LENGTH :对于存储的函数字符串返回值,以字节为单位的最大长度。如果例程是存储过程,则此值为NULL。
    • NUMERIC_PRECISION :对于存储函数数字返回值,数字精度。如果例程是存储过程,则此值为NULL。
    • NUMERIC_SCALE :对于存储的函数数字返回值,数字刻度。如果例程是存储过程,则此值为NULL。
    • DATETIME_PRECISION :对于存储的函数时间返回值,小数秒精度。如果例程是存储过程,则此值为NULL。
    • CHARACTER_SET_NAME :对于存储的函数字符串返回值,字符集名称。如果例程是存储过程,则此值为NULL。
    • COLLATION_NAME :对于存储的函数字符串返回值,排序规则名称。如果例程是存储过程,则此值为NULL。
    • DTD_IDENTIFIER :如果例程是存储函数,则返回值数据类型。如果例程是存储过程,则此值为空。
      DATA_TYPE值只是类型名称,没有其他信息。 DTD_IDENTIFIER值包含类型名称以及可能的其他信息,例如精度或长度。
    • ROUTINE_BODY :用于例程定义的语言。该值始终为SQL。
    • ROUTINE_DEFINITION :例程执行的SQL语句的文本。
    • EXTERNAL_NAME :此值始终为NULL。
    • EXTERNAL_LANGUAGE :存储例程的语言。 MySQL计算EXTERNAL_LANGUAGE是根据:
      • 如果mysql.proc.language =’SQL’,则EXTERNAL_LANGUAGE为NULL
      • 否则,EXTERNAL_LANGUAGE就是mysql.proc.language中的内容。但是,我们还没有外部语言,因此它始终为NULL。
    • PARAMETER_STYLE :该值始终为SQL。
    • IS_DETERMINISTIC :yes或no,取决于是否使用DETERMINISTIC特性定义例程。
    • SQL_DATA_ACCESS :例程的数据访问特性。该值是CONTAINS SQL,NO SQL,READS SQL DATA或MODIFIES SQL DATA之一。
    • SQL_PATH :此值始终为NULL。
    • SECURITY_TYPE :例程SQL SECURITY特性。该值是DEFINER或INVOKER之一。
    • CREATED :创建例程的日期和时间。这是TIMESTAMP值。
    • LAST_ALTERED :上次修改例程的日期和时间。这是TIMESTAMP值。如果例程自创建以来未被修改,则此值与CREATED值相同。
    • SQL_MODE :创建或更改例程时执行的SQL模式,以及执行例程的情况。有关允许的值,请参见“服务器SQL模式”。
    • ROUTINE_COMMENT :如果例程有注释,则以文本显示。反正,则为空。
    • DEFINER :以“user_name”@“host_name”格式创建例程的用户的帐户。
    • CHARACTER_SET_CLIENT :创建例程时character_set_client系统变量的会话值。
    • COLLATION_CONNECTION :创建例程时collat​​ion_connection系统变量的会话值。
    • DATABASE_COLLATION :与例程关联的数据库的排序规则。

    Notes

    • 有关存储的函数返回值的信息也可在PARAMETERS表中找到。存储函数的返回值行可以标识为ORDINAL_POSITION值为0的行。
    mysql> select * from routines limit 47,1G
    
    *************************** 1. row ***************************
               SPECIFIC_NAME: version_patch
             ROUTINE_CATALOG: def
              ROUTINE_SCHEMA: sys
                ROUTINE_NAME: version_patch
                ROUTINE_TYPE: FUNCTION
                   DATA_TYPE: tinyint
    CHARACTER_MAXIMUM_LENGTH: NULL
      CHARACTER_OCTET_LENGTH: NULL
           NUMERIC_PRECISION: 3
               NUMERIC_SCALE: 0
          DATETIME_PRECISION: NULL
          CHARACTER_SET_NAME: NULL
              COLLATION_NAME: NULL
              DTD_IDENTIFIER: tinyint(3) unsigned
                ROUTINE_BODY: SQL
          ROUTINE_DEFINITION: BEGIN RETURN SUBSTRING_INDEX(SUBSTRING_INDEX(VERSION(), '-', 1), '.', -1); END
               EXTERNAL_NAME: NULL
           EXTERNAL_LANGUAGE: NULL
             PARAMETER_STYLE: SQL
            IS_DETERMINISTIC: NO
             SQL_DATA_ACCESS: NO SQL
                    SQL_PATH: NULL
               SECURITY_TYPE: INVOKER
                     CREATED: 2018-07-31 16:44:11
                LAST_ALTERED: 2018-07-31 16:44:11
                    SQL_MODE: 
             ROUTINE_COMMENT: 
     Description
    
     Returns the patch release version of MySQL Server.
    
     Returns
    
     TINYINT UNSIGNED
    
     Example
    
     mysql> SELECT VERSION(), sys.version_patch();
     +--------------------------------------+---------------------+
     | VERSION()                            | sys.version_patch() |
     +--------------------------------------+---------------------+
     | 5.7.9-enterprise-commercial-advanced | 9                   |
     +--------------------------------------+---------------------+
     1 row in set (0.00 sec)
    
                     DEFINER: mysql.sys@localhost
        CHARACTER_SET_CLIENT: utf8
        COLLATION_CONNECTION: utf8_general_ci
          DATABASE_COLLATION: utf8_general_ci
    1 row in set (0.01 sec)
    
  • 相关阅读:
    淘宝如何做智能化UI测试?
    摸爬滚打16年的软件测试经验,建议收藏!
    QA如何高效参与技术设计评审
    官宣!新冠疫苗全民免费接种,全部费用政府出!
    2021年第一次,送Python好书
    【Python】自动化抢购茅台,真香。
    3年以上测试工程师,你的出路在哪里?
    性能测试的目的与类型
    Burpsuite的简单应用-y-Proxy
    用Burpsuite破解网站密码
  • 原文地址:https://www.cnblogs.com/wanbin/p/9514630.html
Copyright © 2020-2023  润新知