1、MySQL创建函数语法:

CREATE
  [DEFINER = { user | CURRENT_USER }]
FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body func_parameter:
param_name type type:
Any valid MySQL data type routine_body:
Valid SQL routine statement

注意:自定义函数不能跨库使用

mysql> DELIMITER //
mysql> CREATE FUNCTION Ver_Compare (n INT, m INT)
-> RETURNS VARCHAR() #声明返回的数据类型
-> BEGIN
->   DECLARE s VARCHAR();
->   IF n = m THEN SET s = 'equals';
->   ELSE
->     IF n > m THEN SET s = 'greater';
->     ELSE SET s = 'less';
->     END IF;
->     SET s = CONCAT('is ', s, ' than');
->   END IF;
->   SET s = CONCAT(n, ' ', s, ' ', m, '.');
->   RETURN s; #一个实际的返回值
-> END //
mysql> DELIMITER ;

由上述例子,不难看出,自定义函数的创建其实和create存储过程还是很相似的。

2、函数调用

  自定义函数虽然在创建定义上和存储过程类似,但调用时却有些许的不一样。

mysql> call Ver_Compare(,);
ERROR (): PROCEDURE db1.Ver_Compare does not exist mysql> set @ax = Ver_Compare(,);
mysql> select @ax;
+-------------------+
| @ax |
+-------------------+
| is less than . |
+-------------------+

在我们调用函数的时候,函数需要出现在 = 的右边(也就是说调用函数需要有变量接收其结果)

3、其他

  >查看所有自定义函数:show function status\G;

  >删除指定自定义函数:drop function func_name;

自定义MySQL函数的更多相关文章

  1. 自定义mysql函数时报错,[Err] 1418 - This function has none of DETERMINISTIC......

    今天在我执行自定义mysql函数的SQL时发生了错误,SQL如下: /** 自定义mysql函数 getChildList */delimiter //CREATE FUNCTION `pengwif ...

  2. MySQL——自定义[存储]函数、触发器

    一. 编程基础 1)        结束符 2)        代码块 Begin 相当于 { end;  相当于 } 1.    变量 系统变量 Show variables; 查看系统变量sql_ ...

  3. MySQL函数不能创建的解决方法

    MySQL函数不能创建,是一个很麻烦的问题,下面就为您提供了一个解决此问题的方法,如果您也遇到过类似的问题,不妨一看. http://database.51cto.com/art/201010/229 ...

  4. mysql学习【第4篇】:MySQL函数和编程

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第4篇]:MySQL函数 官方文档 : 官方文档 常用函数 分类: 数学函数 , ...

  5. day 41 mysql 函数 事物

    mysql 函数 事务   mysql 中提供了许多内置函数 CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符.一个多字节字符算作一个单字符. 对于一个包含五个二字节字 ...

  6. laravel DB 执行 mysql函数或者字段

    使用laravel框架中的DB查询mysql数据库的时候,综合遇到执行mysql函数或者,自定义字段,一般情况下DB会把传入的函数当做字段处理 方法如下: DB:raw('函数或者字段'); DB:w ...

  7. 地理位置geo处理之mysql函数

    目前越来越多的业务都会基于LBS,附近的人,外卖位置,附近商家等等,现就讨论离我最近这一业务场景的解决方案. 原文:https://www.jianshu.com/p/455d0468f6d4 目前已 ...

  8. 分享八:特殊的mysql函数

    一:MYSQL自定义排序函数FIELD() MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4),value与str1.str2.st ...

  9. 第二百八十五节,MySQL数据库-MySQL函数

    MySQL数据库-MySQL函数 1.MySQL内置函数 SELECT执行函数,后面跟要执行的函数 CHAR_LENGTH(str)函数:返回字符串的字符长度 -- CHAR_LENGTH(str)函 ...

随机推荐

  1. 【LeetCode】217. Contains Duplicate

    题目: Given an array of integers, find if the array contains any duplicates. Your function should retu ...

  2. MaintainableCSS 《可维护性 CSS》 --- ID 篇

    ID 从语法上讲,当只有一个实例时,我们应该使用一个ID.当有多个时,我们应该使用一个 class. 但是,ID 作用的优先级高于 class ,在我们想覆盖一个样式的时候,这就会导致问题. 为了演示 ...

  3. rownumber和rowid伪劣用法

    select rownum ,deptno,dname loc from  dept; select deptno,dname,loc from dept where rownum=1; select ...

  4. ReIn

    package JBJADV003; import java.io.*;import java.util.Scanner; public class ReIn { /** * @param args ...

  5. usaco training 4.1.2 Fence Rails 题解

    Fence Rails题解 Burch, Kolstad, and Schrijvers Farmer John is trying to erect a fence around part of h ...

  6. Unity3D-Shader-实现X光效果

    [旧博客转移 - 2016年1月3日 16:40 ] 最近学习了一些Shader效果,打算把学到的知识总结一下,这篇讲一下这种轮廓发光的效果(如下图所示),也有一些地方管这个叫X光     1.原理 ...

  7. java 邮件发送工具类

    首先需要下载mail.jar文件,我个人通常是使用maven中心库的那个: <dependency> <groupId>javax.mail</groupId> & ...

  8. FTP DOS 命令行

    1. 在cmd--> 输入ftp 2. 进入ftp输入提示命令行,此时输入open ftp服务器地址,比如我的是本机就: open 127.0.0.1 3. 根据提示输入用户名和密码, 提示登录 ...

  9. Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)A B题

    当时晚上打CF时候比较晚,加上是集训期间的室友都没有晚上刷题的习惯,感觉这场CF很不在状态.A题写复杂WA了一发后去厕所洗了个脸冷静了下,换个简单写法,可是用cin加了ios::sync_with_s ...

  10. hibernate3 和hibernate4的一点小变动

    这两天在做下学籍管理系统,由于hibernate是之前学的,所以这次开发没意识到hibernate3跟hibernate4版本更换的一些变动. 就照搬之前学hibernate3的代码来用,尽管知道该项 ...