mysql 创建函数

如何进入mysql的cmd命令行模式?
参考:http://submaze.iteye.com/blog/2161952

一、查看创建函数的功能是否开启:
mysql>show variables like '%func%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | OFF |
+---------------------------------+-------+
1 row in set (0.07 sec)
二、如果value值为OFF,则需要将其开启.
set global log_bin_trust_function_creators=1;

最终状态
mysql> show variables like '%func%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON |
+---------------------------------+-------+
1 row in set (0.04 sec)

三、创建函数时,先选择数据库
mysql> use oct
Database changed

开始创建函数
mysql> delimiter $$
mysql> create function t_fn(lat1 double,lng1 double,lat2 double,lng2 double)
-> returns tinyint
-> begin
-> return 1;
-> end$$
Query OK, 0 rows affected (0.18 sec)
函数创建成功

函数测试
mysql> select t_fn(1,2,3,4);
-> $$
+---------------+
| t_fn(1,2,3,4) |
+---------------+
| 1 |
+---------------+
1 row in set (0.00 sec)

五、删除函数
mysql> drop function t_fn;
-> $$
Query OK, 0 rows affected (0.59 sec)
六、查看函数
1) mysql> show function status;
-> $$
显示数据库中所有函数的基本信息
2) mysql> show create function t_fn;
-> $$

说明:delimiter
MySQL中delimit命令。
这个命令与存储过程没什么关系。
其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
即改变输入结束符。
默认情况下,delimiter是分号“;”。
在命令行客户端中,如果有一行命令以分号结束,
那么回车后,mysql将会执行该命令。
但有时候,不希望MySQL这么做。因为可能输入较多的语句,且语句中包含有分号。
默认情况下,不可能等到用户把这些语句全部输入完之后,再执行整段语句。
因为mysql一遇到分号,它就要自动执行。
这种情况下,就可以使用delimiter,把delimiter后面换成其它符号,如//或$$。
此时,delimiter作用就是对整个小段语句做一个简单的封装。
此命令多用在定义子程序,触发程序等mysql自己内嵌小程序中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值