一、查看创建函数的功能是否开启: 
mysql> show variables like '%func%'; 
+-----------------------------------------+-------+ 
| Variable_name                            | Value | 
+-----------------------------------------+-------+ 
| log_bin_trust_function_creators | ON    | 
+-----------------------------------------+-------+ 
1 row in set (0.02 sec)
二、如果Value处值为OFF,则需将其开启。 
mysql> set global log_bin_trust_function_creators=1; 
三、创建函数时,先选择数据库, 
mysql> use xxx; 
Database changed 
delimiter $$是设置 $$为命令终止符号,代替分号,因为分号在begin...end中会用到; 
mysql> delimiter $$ 
CREATE FUNCTION first_func(param1 varchar(5),parmam2 varchar(5),param3 varchar(10)) 
RETURNS TINYINT 
BEGIN 
   RETURN 1; 
END 
函数创建成功后需恢复分号为命令终止符号。 
mysql> delimiter ; 
四、测试: 
mysql> select first_func('aaa','bbb','ccc'); 
+-------------------------------+ 
| first_func('aaa','bbb','ccc') | 
+-------------------------------+ 
|                             1 | 
+-------------------------------+ 
1 row in set (0.47 sec) 
五、删除函数: 
mysql> drop function first_func ; 
Query OK, 0 rows affected (0.11 sec) 
六、查看函数 
1) show function status 
显示数据库中所有函数的基本信息  
2)查看某个具体函数

mysql>show create function function;

以上出自:http://blog.csdn.net/tfhui928/article/details/6058074

举例:

--查看创建函数功能是否开启
SHOW VARIABLES LIKE '%func%';

--开启创建函数功能,将variable_name设置为1
SET GLOBAL log_bin_trust_function_creators=1;

--查看数据库中所有函数
SHOW FUNCTION STATUS;

--查看具体的函数
SHOW CREATE FUNCTION test_func

--删除函数
DROP FUNCTION test_func

--创建查询函数
DELIMITER $$
CREATE FUNCTION test_func(param1 VARCHAR(20),param2 INT,param3 CHAR(5))
RETURNS  INT
BEGIN
    DECLARE ret_val INT;--定义变量
    SELECT MAX(id) INTO ret_val FROM test;
 RETURN ret_val;
 
END

--执行函数
SELECT test_func('var',45,'char');

--创建赋值函数
DELIMITER $$
CREATE FUNCTION test_func1(param1 INT,param2 VARCHAR(20))
RETURNS INT
BEGIN
    DECLARE return_val INT;
    DECLARE val INT DEFAULT 2;
    IF val>1 THEN
        SET return_val = val;
    ELSE
        SET return_val = 1;
    END IF;
 RETURN return_val;
END

--执行函数
SELECT test_func1(1,'admin');

转自:http://my.oschina.net/u/1273696/blog/181995

mysql中创建函数的更多相关文章

  1. mysql中创建函数时报错信息

    报错信息如下 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its ...

  2. mysql 中创建存储过程

    mysql中创建存储过程和存储函数虽相对其他的sql语言相对复杂,但却功能强大,存储过程和存储函数更像是一种sql语句中特定功能的一种封装,这种封装可以大大简化外围调用语句的复杂程度. 首先以表emp ...

  3. 在MySQL中创建实现自增的序列(Sequence)的教程

    这篇文章主要介绍了在MySQL中创建实现自增的序列(Sequence)的教程,分别列举了两个实例并简单讨论了一些限制因素,需要的朋友可以参考下 项目应用中,曾有以下一个场景: 接口中要求发送一个int ...

  4. mysql中的函数与存储过程

    mysql中的函数:1 mysql下创建函数: 1.1 语法: delimiter $$ -- 设置分隔符,默认是; 设置成其他符号,让编译器知道我们函数编写的结束,此处设置成$$ create fu ...

  5. MySQL中count函数使用方法详解

      count函数是用来统计表中或数组中记录的一个函数,下面我来介绍在MySQL中count函数用法与性能比较吧. count(*) 它返回检索行的数目, 不论其是否包含 NULL值. SELECT ...

  6. thinkphp中的内置操作数据库与mysql中的函数汇总

    8.4.4 Model类getModelName() 获取当前Model的名称getTableName() 获取当前Model的数据表名称switchModel(type,vars=array()) ...

  7. NET MVC全局异常处理(一) 【转载】网站遭遇DDoS攻击怎么办 使用 HttpRequester 更方便的发起 HTTP 请求 C#文件流。 Url的Base64编码以及解码 C#计算字符串长度,汉字算两个字符 2019周笔记(2.18-2.23) Mysql语句中当前时间不能直接使用C#中的Date.Now传输 Mysql中Count函数的正确使用

    NET MVC全局异常处理(一)   目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关 ...

  8. 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)

    一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...

  9. mysql中now()函数的使用,还有oracle的sysdate,可能埋下的坑

    mysql中now()函数的使用,还有oracle的sysdate 在需求中如果系统中药添加当前操作的时间那么很简单的一个操作在写sql的时候直接在这个字段对应的位置写上now()函数就可以了,这样就 ...

随机推荐

  1. OAuth_3

    端点: 授权断点.令牌断点.重定向端点 除了重定向端点在客户端应用上,其他在服务器端 授权端点: 资源拥有者所登录的授权服务器,并授权给客户端应用的端点 令牌端点: 授权服务器上为了一个访问令牌,客户 ...

  2. 【串线篇】SpringMVC运行流程

    1.所有请求,前端控制器(DispatcherServlet)收到请求,调用doDispatch进行处理 2.根据HandlerMapping中保存的请求映射信息找到,处理当前请求的,处理器执行链(包 ...

  3. 双联通的tarjan算法

    转自:https://www.zhihu.com/question/40746887/answer/88428236 连通分量有三种∶边双连通分量,点双连通分量,强连通分量,前两种属于无向图,后一种属 ...

  4. python 常用技巧 — 数组 (array)

    目录: 1. 数组每一行除以这一行的总数(numpy divide row by row sum) 2. 数组每一行或者每一列求平均 (python average array columns or ...

  5. mysql的一个工具 mysql-utilities

    mysql-utilities是mysql的一个工具集合,它是基于----- python2 --- 实现的,从官网查看到最新版本为mysql-utilities-1.6.5.tar.gz编译安装 w ...

  6. 一张图告诉你js为什么要加分号

    当js代码被压缩或者通过其他方式改变你的编码结构时,分号能够给编译器和解析器提供精准的语句拆分. 如图中m 和 c 的例子就能解释为什么这样做.

  7. C++11新特性之 Move semantics(移动语义)

    https://blog.csdn.net/wangshubo1989/article/details/49748703 这篇讲到了vector的push_back的两种重载版本,左值版本和右值版本.

  8. RzPageControl(pagecontrol)

    实现多标签的动态添加,切换,关闭 使用RzPageControl来实现多标签页使用菜单来打开标签页,通过标签页的caption来判断将标签页是否已经被打开过了.1.创建标签页,并判断是否是已经打开过的 ...

  9. 框架-.Net:.NET框架

    ylbtech-框架-.Net:.NET框架 .NET框架(.NET Framework) 是由微软开发,一个致力于敏捷软件开发(Agile softwaredevelopment).快速应用开发(R ...

  10. strlen、strcmp、strcat、strlen、memmove

    #include <cassert> #include <iostream> using namespace std; /* strlen 返回字符串不包含结束符\0的长度 * ...