错误日志如下

1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable), Time: 0.125000s

1、开启创建函数功能


-- 1、查看创建函数是否开启 如果Value处值为OFF,则需将其开启。
show variables like '%func%';
-- 2、开启MySQL函数功能
set global log_bin_trust_function_creators=1;
-- 3、关闭MySQL函数功能
set global log_bin_trust_function_creators=0;-- 4、删除一个函数
drop function IF EXISTS getDistance;-- 删除存储过程、存储函数主要使用drop语句:
-- DROP PROCEDURE IF EXISTS #{存储过程} —— 删除存储过程
-- DROP FUNCTION IF EXISTS #{函数}     —— 删除存储函数

2、创建计算两个坐标之间距离的的函数

-- 第一种
CREATE  FUNCTION getDistance(lng1 FLOAT,lat1 FLOAT,lng2 FLOAT,lat2 FLOAT) RETURNS DOUBLE
BEGINDECLARE result DOUBLE;DECLARE radLng1 DOUBLE;DECLARE radLat1 DOUBLE;DECLARE radLng2 DOUBLE;DECLARE radLat2 DOUBLE;SET radLng1 = lng1 * pi() / 180.0;SET radLat1 = lat1 * pi() / 180.0;SET radLng2 = lng2 * pi() / 180.0;SET radLat2 = lat2 * pi() / 180.0;SET result = 2 * asin(sqrt(pow(sin((radLat1 - radLat2) / 2), 2) + cos(radLat1) * cos(radLat2) * pow(sin((radLng1 - radLng2) / 2), 2)));SET result = result * 6378.137;SET result  = ROUND(result * 100) / 100;
RETURN result;
END--第二种
DELIMITER $$
DROP FUNCTION IF EXISTS getDistance$$
CREATE  FUNCTION getDistance(lng1 FLOAT,lat1 FLOAT,lng2 FLOAT,lat2 FLOAT) RETURNS DOUBLE
BEGINDECLARE result DOUBLE;DECLARE radLng1 DOUBLE;DECLARE radLat1 DOUBLE;DECLARE radLng2 DOUBLE;DECLARE radLat2 DOUBLE;SET radLng1 = lng1 * PI() / 180.0;SET radLat1 = lat1 * PI() / 180.0;SET radLng2 = lng2 * PI() / 180.0;SET radLat2 = lat2 * PI() / 180.0;SET result = 2 * ASIN(SQRT(POW(SIN((radLat1 - radLat2) / 2), 2) + COS(radLat1) * COS(radLat2) * POW(SIN((radLng1 - radLng2) / 2), 2)));SET result = result * 6378.137;SET result  = ROUND(result * 100) / 100;
RETURN result;
END $$
DELIMITER ;

3、使用测试

-- 上海市为例 唐镇地铁站到人民广场地铁站的直线距离 大概17.33公里 (参数坐标不区分先后顺序)
select getDistance(121.662702,31.220411,121.481923,31.238586);

mysql8.0创建函数错误代码1418解决方法和原因相关推荐

  1. navicat连接mysql闪退_Navicat连接MySql8.0的各种问题及解决方法

    navicat连接mysql8.0亲测有效 今天下了个 mysql8.0,发现navicat连接不上,总是报错1251: 原因是mysql8.0版本的方式和mysql5.0的不一样,连接会报错. 试了 ...

  2. MySQL8中创建函数报错的解决

    MySQL8中创建函数报错的解决 一 问题描述 二 解决方案 方案一 : 设置全局环境变量 方案二 : 修改系统配置文件 一 问题描述 在使用MySQL8.x版本的数据库创建函数时, 报出一下错误 H ...

  3. 计算机输入代码0怎么能输入,电脑蓝屏0xv0000098错误代码怎么回事_电脑蓝屏0xv0000098错误代码的解决方法...

    电脑蓝屏故障是一种非常普遍的现象,想必大家都遇到过,此故障解决起来也比较棘手.很多使用win10系统的小伙伴在开机遇到了蓝屏0xv0000098错误代码,明明一切都正常的,到底是哪里出现问题?现在就来 ...

  4. Target runtime Apache Tomcat v6.0 is not defined.错误解决方法

    Target runtime Apache Tomcat v6.0 is not defined.错误解决方法 Eclipse导入工程后工程上显示一个小红叉,但工程里没有文件错误,也没有语法错误,百思 ...

  5. VS使用scanf函数报错解决方法

    VS使用scanf函数报错解决方法 首先来看一段很简单的C语言代码 #include<stdio.h> int main(void) {char s[10];scanf("%s& ...

  6. 针对宽带拨号错误代码及解决方法

    针对宽带拨号错误代码及解决方法 一.宽带拨号691.629.619: 二.宽带拨号651.678问题: 三.宽带拨号711:无法加载远程访问连接管理器服务 四.宽带连接点击不了 五.连接网络时出现:& ...

  7. 惠普m180n故障码04_HP打印机错误代码及解决方法

    HP 打印机错误代码及解决方法 1 FFFF FFFF XXXX XXXX 一般软件版本问题,重启即可 2 FFFF FFFF 02B301B0 软件版本问题,升级版本即可 3 FFFF FFFF 0 ...

  8. 微信小程序JSjavascript中的Math.pow()函数负数开立方解决方法

    微信小程序JSjavascript中的Math.pow()函数负数开立方解决方法 Math.pow()函数是不能负数开立方的,会返回Null,因为对于计算机而言,负数开三次方是一个复数(实际上负数开三 ...

  9. .NET Framework 3.5弹出错误代码0x800f0954解决方法

    .NET Framework 3.5弹出错误代码0x800f0954解决方法.有用户电脑的.NET Framework 3.5组件在运行的时候出现了问题.很多用户对于这个问题不知道如何去进行处理,接下 ...

最新文章

  1. SQLServer之DEFAULT约束
  2. Pycharm+Anacond安装完成后的Python文件创建以及No module named 'bs4'.
  3. python 函数装饰器_python函数装饰器的用法
  4. HANA Calculation View
  5. 乡镇银行和信用社哪个正规?
  6. [html] HTML5如何使用音频和视频?
  7. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (11) - 乱序引擎/重命名器调度器
  8. redis 缓存有效期
  9. win10如何关闭F1~F12快捷键?
  10. mssql无法通过ip连接mysql_解决ADO通过指定IP地址连接到SQLServer数据库时总是失败问题...
  11. 思科路由器OSPF配置实例
  12. 计算机毕设(附源码)JAVA-SSM交通事故证据交易平台
  13. Spring中常用注解及其作用(二)
  14. 解决Windows桌面部分快捷方式图标变为空白的问题
  15. 目标检测拉近镜头数据增强
  16. 男人必备!泡妞全攻略
  17. 什么是股票程序化交易?
  18. 天嵌开发版 imx6 移植qt
  19. java dozer_java – Dozer双向映射(String,String)与自定义转换器不可能?
  20. 【基础编程题目集编程题及其答案】

热门文章

  1. 达沃斯的AI思想交锋后,下一个实用人工智能风向标在哪?
  2. python基础语法和基本数据结构
  3. SELECT CASE WHEN 用法
  4. Android中apk加固完善篇之内存加载dex方案实现原理(不落地方式加载)
  5. 自考计算机英语基础题库,2017年自考计算机应用基础模拟试题1
  6. Spring-Cloud之Feign原理剖析
  7. TS手写简陋版reactive响应式原理(依赖收集,依赖更新)
  8. 时序模型:隐马尔科夫模型(HMM)
  9. 如何导出谷歌浏览器Chrome的书签
  10. C++将字符串变为数字