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,1\G

*************************** 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)

20. ROUTINES的更多相关文章

  1. Reentrant protected mode kernel using virtual 8086 mode interrupt service routines

    A method for allowing a protected mode kernel to service, in virtual 8086 mode, hardware interrupts ...

  2. CSharpGL(20)用unProject和Project实现鼠标拖拽图元

    CSharpGL(20)用unProject和Project实现鼠标拖拽图元 效果图 例如,你可以把Big Dipper这个模型拽成下面这个样子. 配合旋转,还可以继续拖拽成这样. 当然,能拖拽的不只 ...

  3. ABP(现代ASP.NET样板开发框架)系列之20、ABP展现层——动态生成WebApi

    点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之20.ABP展现层——动态生成WebApi ABP是“ASP.NET Boilerplate Project (ASP.N ...

  4. 帮我做个APP,给你20万,做不做?

    一.为什么要写这篇文章 前段时间,有个辞职 创业的同事(做法务的)  问我 开发一个 新闻类的APP要多少钱,产品.UI.接口.后台管理页  他们啥都没有,想全部外包. 我 并没有在外包公司做过,也没 ...

  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(20)-权限管理系统-根据权限获取菜单

    系列目录 不知不觉到20讲,真是漫长的日子,可惜最近工作挺忙,要不可以有更多的时间来更新,多谢大家的一路支持.如果你觉得好,记得帮我点击推荐^-^ 我们在之前已经插入一些真实数据,其中包含了一个用户和 ...

  6. LINQ to SQL语句(20)之存储过程

    在我们编写程序中,往往需要一些存储过程,在LINQ to SQL中怎么使用呢?也许比原来的更简单些.下面我们以NORTHWND.MDF数据库中自带的几个存储过程来理解一下. 1.标量返回 在数据库中, ...

  7. C#开发微信门户及应用(20)-微信企业号的菜单管理

    前面几篇陆续介绍了很多微信企业号的相关操作,企业号和公众号一样都可以自定义菜单,因此他们也可以通过API进行菜单的创建.获取列表.删除的操作,因此本篇继续探讨这个主体,介绍企业号的菜单管理操作. 菜单 ...

  8. 20个非常有用的Java程序片段

    下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric strin ...

  9. 20个不可思议的 WebGL 示例和演示

    WebGL 是一项在网页浏览器呈现3D画面的技术,有别于过去需要安装浏览器插件,通过 WebGL 的技术,只需要编写网页代码即可实现3D图像的展示.WebGL 可以为 Canvas 提供硬件3D加速渲 ...

随机推荐

  1. bzoj 3232: 圈地游戏【分数规划+最小割】

    数组开小导致TTTTTLE-- 是分数规划,设sm为所有格子价值和,二分出mid之后,用最小割来判断,也就是判断sm-dinic()>=0 这个最小割比较像最大权闭合子图,建图是s像所有点连流量 ...

  2. 51Nod 1174 区间中最大的数(RMQ)

    #include <iostream> #include <algorithm> #include <cstring> using namespace std; + ...

  3. EditPlus 3:设置自动换行

    打开软件,菜单栏点击Document,再在下拉栏中点击Permanent Settings,然后在弹出的设置框中找到Word Wrap点击,最后在弹出的小框中勾选第一个Enable word wrap ...

  4. c++ 常用的几种重载操作符

    运算符可以作为普通函数,朋友函数或成员函数来重载.下面的经验法则可以帮助您确定哪种形式最适合于给定的情况: 如果你重载了赋值(=),下标([]),函数调用(())或成员选择( - >),那么它就 ...

  5. _bzoj1029 [JSOI2007]建筑抢修【贪心 堆】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1029 经典的贪心问题,不解释. #include <cstdio> #inclu ...

  6. PTA天梯赛训练题L1-064:估值一亿的AI核心代码(字符串模拟)

    Update:smz说regex秒过Orz,yzd记在这里了. 听说今年天梯赛有个烦人的模拟,我便被队友逼着试做一下……一发15,二发20.记一记,要不然枉费我写这么久…… 自己还是代码能力太菜了,校 ...

  7. 组合数+容斥原理 UVALive 7040 Color(14西安F)

    题目传送门 题意:n盆花涂色,相邻不能涂相同的颜色,从m中颜色选取k种颜色涂,保证正好有k种颜色 分析:从m中颜色选取k种就是C (m, k),然后第一个有k种选择,之后的都有k-1种选择,这样是不超 ...

  8. JAVA常用知识总结(二)

    JAVA中的参数传递总结先看两道笔试题: public class Test2 { public static void main (String [] args) { StringBuffer a ...

  9. Mysql框架---HMySql

    Java 数据库框架 在我学习java数据库框架的时候,第一个用的是Hibernate,但是到现在,我可能已经快忘记它了,毕竟快两年没有碰的东西,后来一直再用MyBatis.因为它简单. 但是本文不会 ...

  10. 打开centos直接进入文本模式命令行

    2.打开/etc/inittab 文件 #vim /etc/inittab3.在默认的 run level 设置中,可以看到第一行书写如:id:5:initdefault:(默认的 run level ...