详细讲解如何为MySQL数据库添加新函数
作者:20961 来源:赛迪网 发布时间:2008-11-27 17:06:00
标签:
你可以通过自定义函数接口 (UDF)来添加函数。自定义函数被编译为目标文件,然后用CREATE FUNCTION 和DROP FUNCTION 声明动态地添入到服务器中及从服务器中移出。
你可以将函数添加为MySQL固有(内建)函数。固有函数被编译进mysqld服务器中,成为永久可用的。
每种途径的优点和缺点:
如果你编写自定义函数,你除了安装服务器本身之外还要安装目标文件。如果将你的函数编译进服务器中,你就不需要这么做了。
你可以给二进制版本的MySQL分发版添加UDF。固有函数需要你去修正源码分发版。.
如果你升级你的MySQL分发版,你可以继续使用先前安装了的UDF, 除非你升级到一个UDF接口改变了的新版本。对固有函数而言,每次升级你都必须重复一次修正。
无论你使用哪种方法去添加新函数,它们都可以被SQL声明调用,就像 ABS() 或 SOUNDEX()这样的固有函数一样。
另一个添加函数的方法时创建存储函数。这些函数时用SQL声明编写的,而不是编译目标代码。编写存储函数的语法在第20章:存储程序和函数 中描述。
下面的小节描述UDF接口的特性,给出编写UDF的指令,并讨论MySQL为防止UDF被误用而采取的安全预防措施。
给出源代码的例子来说明如何编写UDF,可以看一看MySQL源码分发版中提供的sql/udf_example.cc 文件。
0
投稿
猜你喜欢
- 微软今天发布了SQL Server 2005 SP3的正式版,而这也将是该软件的最后一次升级服务,不过暂时只有英文版本,需要简体中文版的用户
- 本文主要介绍了MySQL 8.0 驱动与阿里druid版本兼容问题解决,具体如下:注意:这个异常表面druid数据源的版本与MySql 8.
- 本文记录了python安装及环境配置方法,具体内容如下Python安装 Windowns操作系统中安装Python步骤一 下载安装包从Pyt
- 首先,建一个文件夹,把你要隐藏的文件放在里面,你的所有黑客程序什么的。假设你建的文件夹叫hacker然后呢,我们给这个文件夹加个扩展名(后缀
- 本文实例讲述了python中sys.argv参数用法。分享给大家供大家参考。具体分析如下:在学python的过程中,一直弄不明白sys.ar
- 在使用go mod的过程中,发现不容易指定版本号尤其是没有打tag的,不知道怎么指定版本号, 不知道有哪版本号正常使用都没有问题,但是当引用
- golang 空结构体 struct{} 可以用来节省内存a := struct{}{}println(unsafe.Sizeof(a))/
- 本文实例讲述了Python基于回溯法子集树模板解决全排列问题。分享给大家供大家参考,具体如下:问题实现 'a', '
- 代码如下:---这是一个人事系统中的示例,要求记录一下员工的缺勤情况 ---1.要在表中记录一下缺勤计分,是对经常缺勤者的一种处
- 面包屑导航(breadcrumb)面包屑导航显示当前页面的路径,同时支持跳回之前任意页面breadcrumb的使用:按需引入的需要引入两个模
- python以下是个人学习 python 研究判断ip连通性方法的集合。 缺点可能有办法解决,如有错误,欢迎矫正。方法一import osr
- 几个特殊的函数(待补充)python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter、map、red
- Rand()函数是系统自带的获取随机数的函数,可以直接运行select rand() 获取0~1之间的float型的数字。如果想要获取0~1
- 安装pymysqlpip install pymysql2|0使用pymysql2|1使用数据查询语句查询一条数据fetchone()fro
- JDBC基础入门概念JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java
- 前言使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__方法在类的一个对象被建立时,马上
- 涉及到详情页爬取目录结构:kaoshi_bqg.pyimport scrapyfrom scrapy.spiders import Rule
- 根据菜鸟教程Django教程学习,运行"python manage.py migrate" 报错,出现django.db
- 本文实例讲述了Python计算字符宽度的方法。分享给大家供大家参考,具体如下:最近在用python写一个CLI小程序,其中涉及到计算字符宽度
- 一、为什么要包管理默认Go的第三方包都是放在Gopath的src目录下,而且这些包都没有版本号的概念,这样的可能会出现一些问题。举个例子:当