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. pojcoin【未完待续】

    题意: 给你一些数字的种类,然后拥有这个种类的各个数量,输出可以组成多少数字,数字范围在1-m: 思路: 卧槽好难-

  2. 国产spfa瞎几把嗨

    //在各种不利的因素下,我居然就这么水过了这题最短路,然而还wa了一次,因为路是双向的... //这题姿势很多啊,但自从会了国产spfa就是最短路能搞的就是spfa,优点太多了!!! //也是瞎几把打 ...

  3. 3DMAX 9 角色建模3 uv展开

    将角色删除一半,展好uv再镜像出来,节省一半工作量(前提是对称) 添加UVW展开编辑器(Unwrap UVW),选择面 打开UV编辑器 这里要注意映射问题,默认打开UV编辑器后所选择的面是映射到与选择 ...

  4. Nginx系列篇四:Nginx+keepalived搭建一个高可用的双机双主热备

    建议:先阅读Nginx+keepalived主从配置,因为此篇是接着上篇开始的 上一篇我们简单的介绍了主从配置及其缺点,我们看一下双主热备配置: 2台Nginx+keepalived互为主备,各自绑定 ...

  5. iOS 让部分ViewController支持屏幕旋转

    首先,在Xcode里设置整个项目支持的屏幕显示方向: 然后创建一个UINavigationController的子类,然后重载以下属性: 对于需要自定义屏幕方向的ViewController,重载这个 ...

  6. Python标准库 datetime

    >>> import datetime >>> now = datetime.datetime.now() >>> now datetime.da ...

  7. Lucky Array Codeforces - 121E && Bear and Bad Powers of 42 Codeforces - 679E

    http://codeforces.com/contest/121/problem/E 话说这题貌似暴力可A啊... 正解是想出来了,结果重构代码,调了不知道多久才A 错误记录: 1.线段树搞混num ...

  8. ADB over Wi-Fi

    ADB over Wi-Fi 1.root $adb root 2.设置tcp端口并重启tcpip服务 $adb shell setprop persist.adb.tcp.port &&am ...

  9. 自定义view(13)自定义属性

    1.添加attrs.xml文件 在android studio下,在res/values 下新建资源文件attrs.xml 2.添加自定义的属性 在attrs.xml中添加属性,如下.其中format ...

  10. C# 对象复制

    /// <summary> /// 把DataTable对象转成List<T>对象 /// </summary> /// <typeparam name=&q ...