自定义MySQL函数
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函数的更多相关文章
- 自定义mysql函数时报错,[Err] 1418 - This function has none of DETERMINISTIC......
今天在我执行自定义mysql函数的SQL时发生了错误,SQL如下: /** 自定义mysql函数 getChildList */delimiter //CREATE FUNCTION `pengwif ...
- MySQL——自定义[存储]函数、触发器
一. 编程基础 1) 结束符 2) 代码块 Begin 相当于 { end; 相当于 } 1. 变量 系统变量 Show variables; 查看系统变量sql_ ...
- MySQL函数不能创建的解决方法
MySQL函数不能创建,是一个很麻烦的问题,下面就为您提供了一个解决此问题的方法,如果您也遇到过类似的问题,不妨一看. http://database.51cto.com/art/201010/229 ...
- mysql学习【第4篇】:MySQL函数和编程
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第4篇]:MySQL函数 官方文档 : 官方文档 常用函数 分类: 数学函数 , ...
- day 41 mysql 函数 事物
mysql 函数 事务 mysql 中提供了许多内置函数 CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符.一个多字节字符算作一个单字符. 对于一个包含五个二字节字 ...
- laravel DB 执行 mysql函数或者字段
使用laravel框架中的DB查询mysql数据库的时候,综合遇到执行mysql函数或者,自定义字段,一般情况下DB会把传入的函数当做字段处理 方法如下: DB:raw('函数或者字段'); DB:w ...
- 地理位置geo处理之mysql函数
目前越来越多的业务都会基于LBS,附近的人,外卖位置,附近商家等等,现就讨论离我最近这一业务场景的解决方案. 原文:https://www.jianshu.com/p/455d0468f6d4 目前已 ...
- 分享八:特殊的mysql函数
一:MYSQL自定义排序函数FIELD() MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4),value与str1.str2.st ...
- 第二百八十五节,MySQL数据库-MySQL函数
MySQL数据库-MySQL函数 1.MySQL内置函数 SELECT执行函数,后面跟要执行的函数 CHAR_LENGTH(str)函数:返回字符串的字符长度 -- CHAR_LENGTH(str)函 ...
随机推荐
- 【LeetCode】217. Contains Duplicate
题目: Given an array of integers, find if the array contains any duplicates. Your function should retu ...
- MaintainableCSS 《可维护性 CSS》 --- ID 篇
ID 从语法上讲,当只有一个实例时,我们应该使用一个ID.当有多个时,我们应该使用一个 class. 但是,ID 作用的优先级高于 class ,在我们想覆盖一个样式的时候,这就会导致问题. 为了演示 ...
- rownumber和rowid伪劣用法
select rownum ,deptno,dname loc from dept; select deptno,dname,loc from dept where rownum=1; select ...
- ReIn
package JBJADV003; import java.io.*;import java.util.Scanner; public class ReIn { /** * @param args ...
- 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 ...
- Unity3D-Shader-实现X光效果
[旧博客转移 - 2016年1月3日 16:40 ] 最近学习了一些Shader效果,打算把学到的知识总结一下,这篇讲一下这种轮廓发光的效果(如下图所示),也有一些地方管这个叫X光 1.原理 ...
- java 邮件发送工具类
首先需要下载mail.jar文件,我个人通常是使用maven中心库的那个: <dependency> <groupId>javax.mail</groupId> & ...
- FTP DOS 命令行
1. 在cmd--> 输入ftp 2. 进入ftp输入提示命令行,此时输入open ftp服务器地址,比如我的是本机就: open 127.0.0.1 3. 根据提示输入用户名和密码, 提示登录 ...
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)A B题
当时晚上打CF时候比较晚,加上是集训期间的室友都没有晚上刷题的习惯,感觉这场CF很不在状态.A题写复杂WA了一发后去厕所洗了个脸冷静了下,换个简单写法,可是用cin加了ios::sync_with_s ...
- hibernate3 和hibernate4的一点小变动
这两天在做下学籍管理系统,由于hibernate是之前学的,所以这次开发没意识到hibernate3跟hibernate4版本更换的一些变动. 就照搬之前学hibernate3的代码来用,尽管知道该项 ...