mysql 8.0版本 error 3516 ;error 3618

mysql 5.7 执行结果:

CREATE TABLE student (id int,name varchar(255),address varchar(255),wkt geometry not null);
alter table student add  SPATIAL INDEX spidx(wkt);
INSERT INTO student VALUES (1, '张', '李家隔壁', st_geomfromtext('POINT(0 0)'));
INSERT INTO student VALUES (2, '李',  '张家隔壁', st_geomfromtext('POINT(1 1)'));

mysql> SELECT id,name,st_astext(wkt),st_isvalid(wkt),st_x(wkt),st_y(wkt),st_centroid(wkt),st_area(wkt),st_length(wkt) FROM student;
+----+--------+----------------+-----------------+-----------+-----------+------------------------------------------------------+--------------+----------------+
| id | name   | st_astext(wkt) | st_isvalid(wkt) | st_x(wkt) | st_y(wkt) | st_centroid(wkt)                                     | st_area(wkt) | st_length(wkt) |
+----+--------+----------------+-----------------+-----------+-----------+------------------------------------------------------+--------------+----------------+
|  1 | 张   | POINT(0 0)     |               1 |         0 |         0 | 0x00000000010100000000000000000000000000000000000000 |            0 |           NULL |
|  2 | 李   | POINT(1 1)     |               1 |         1 |         1 | 0x000000000101000000000000000000F03F000000000000F03F |            0 |           NULL |
+----+--------+----------------+-----------------+-----------+-----------+------------------------------------------------------+--------------+----------------+
2 rows in set (0.00 sec)

MySQL 8.0 执行在函数st_centroid(wkt)、st_area(wkt) 报错。

点类型数据使用函数 st_area 报错:ERROR 3516 (HY000): POLYGON/MULTIPOLYGON value is a geometry of unexpected type POINT in st_area.
          使用函数 st_centroid 报错:ERROR 3618 (HY000): st_centroid(POINT) has not been implemented for geographic spatial reference systems.

问题原因:MySQL 5.7 与MySQL 8.0 的区别
报错在MySQL8.0 版本环境上,8.0 对于函数的使用更加严格,官方文档中给出了相关的描述:
st_centroid:如果几何图形具有地理空间参考系统(SRS)的SRID值,则会出现ER_NOT_IMPLEMENTED_for_geographic_SRS错误。
st_area:如果几何体有效,但不是多边形或多多边形对象,则会出现ER_UNEXPECTED_geometry_TYPE错误。

详细描述:
ST_Centroid()处理其参数,但有以下例外:
对于参数为空几何集合的附加条件,返回值为NULL。
如果几何图形具有地理空间参考系统(SRS)的SRID值,则会出现ER_NOT_IMPLEMENTED_for_geographic_SRS错误。

从MySQL 8.0.13开始,ST_Area()处理其参数,但有以下例外:
如果几何图形在几何上无效,则结果是未定义的区域(也就是说,它可以是任何数字),或者出现错误。
如果几何体有效,但不是多边形或多多边形对象,则会出现ER_UNEXPECTED_geometry_TYPE错误。
如果几何体是笛卡尔SRS中的有效多边形,则结果是多边形的笛卡尔面积。
如果几何体是笛卡尔SRS中的有效多重多边形,则结果是多边形的笛卡尔面积之和。
如果几何图形是地理SRS中的有效多边形,则结果是该SRS中多边形的大地测量面积,单位为平方米。
如果几何图形是地理SRS中的有效多多边形,则结果是该SRS中多边形的大地测量面积之和,单位为平方米。
如果面积计算结果为+inf,则会出现ER_DATA_OUT_OF_RANGE错误。
如果几何图形的地理SRS的经度或纬度超出范围,则会发生错误:
如果经度值不在范围内(−180,180]时,会出现ER_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE错误(MySQL 8.0.12之前的ER_LONGIUTDE_OUT_OF_RANGE)。
如果纬度值不在范围内[−90,90],出现ER_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE错误(在MySQL 8.0.12之前的ER_LATITUDE_OUT_FO_RANGE)。
显示的范围以度为单位。由于浮点运算,精确范围限制略有偏差。

在MySQL 8.0.13之前,ST_Area()处理其参数,但有以下例外:
对于维度为0或1的参数,结果为0。
如果几何图形为空,则返回值为0而不是NULL。
对于几何图形集合,结果是所有组件的面积值之和。如果几何图形集合为空,则其面积将返回为0。
如果几何图形具有地理空间参考系统(SRS)的SRID值,则会出现ER_NOT_IMPLEMENTED_for_geographic_SRS错误。

报错解决方法:需要规范相关函数的使用,避免官档中描述的例外情况。

mysql 8.0版本 error 3516 ;error 3618相关推荐

  1. MySQL 8.0版本驱动更换

    MySQL8.0版本需要更换驱动为"com.mysql.cj.jdbc.Driver",之前的"com.mysql.jdbc.Driver"已经不能在MySQL ...

  2. MySQL 8.0版本无法使用 node、Navicat等三方工具连接的问题

    问题描述: 在官网下载mysql之后,一切按照默认配置安装完毕. (windows 7 64位操作系统) 使用 MySQL Workbench 8.0 CE 登录本地库,正常: 使用 MySQL Wo ...

  3. 关于mysql 5.0版本java项目导入mysql8.0的问题

    java项目是mysql5.0版本的,本机mysql是8.0版本的,不兼容,解决方法如下: 1.更换数据库驱动,数据库连接驱动下载链接http://central.maven.org/maven2/m ...

  4. MySQL 8.0版本安装后,安装目录下找不到my.ini文件

    安装路径是: 找了半天都没有找到,肿么办? 最后在C盘下找到了: C:\ProgramData\MySQL\MySQL Server 8.0

  5. Linux环境——MySQL安装及配置(8.0版本)

    虚拟机环境是Linux  Red Hat Enterprlse Linux (64位),本次安装的是Mysql 8.0版本. 由于有经验了,所以又弄了台虚拟机练手,承接上一篇博客(https://ww ...

  6. MySQL 最新8.0版本windows系统下数据库的安装、配置与使用实例演示,客户端使用ip连接数据库失败问题处理

    MySQL 8.0版本数据库安装与配置演示 第一章:安装与配置 ① 下载与安装 ② 配置环境变量 ③ 配置 mysql 的 my.ini 文件 ④ 初始化与重置密码 第二章:问题解决 ① MySQL ...

  7. mysql80版本连接 1251_解决Navicat Premium 连接 MySQL 8.0 报错1251的问题分析

    人闲太久,努力一下就以为是在拼命. 一.问题 Navicat Premium 连接 MySQL 8.0 报错: 1251 - Client does not support authenticatio ...

  8. 关于MySQL 8.0的几个重点新特性及其他版本浅谈

    大家好今天又与大家见面了.IT技术无领域.国界之分,不断学习最新技术走在IT技术前沿一直是我们的目标网站模板下载争取把自己所学的知识,所经历的经验,拿出来与大家分享,共同成长与进步.在当前这个群雄并起 ...

  9. mysql8.0创建属性,MySQL 8.0新特性 — 管理端口的使用简介

    前言 下面这个报错,相信大多数童鞋都遇见过:那么碰到这个问题,我们应该怎么办呢?在MySQL 5.7及之前版本,出现"too many connection"报错,超级用户root ...

最新文章

  1. 开发的AI程序员“抄”代码,被骂惨的GitHub到底冤不冤?
  2. 欢迎使用CSDN-markdown编辑器(此为使用指南,自己还不熟练有些功能的使用)
  3. boost::spirit模块实现利用 Karma 生成器的替代方案和内置匹配功能的测试程序
  4. [伤了昨天的心 裂成碎片和沙一起飞]五香里脊
  5. python dll注入 网络_python – 检测反射型DLL注入
  6. 续——《RedHat/Fedora等非ubuntu的Linux系统星空极速netkeeper拨号上网 》
  7. 深度linux magento,linux下安装magento
  8. 设计一个矩形类rectangle_使用Python super()为您的类增强
  9. 2021年中国船舶甲板市场趋势报告、技术动态创新及2027年市场预测
  10. IT学子成长指导类文章链接(十二)
  11. matlab中 nntwarn off,network的subsindex的定义问题
  12. HG255D[OpenWrt]从入门到精通
  13. 低速硬件接口之RS485接口自收发隔离多节点分享
  14. 微信小程序开发(3.选项卡)
  15. Apple Pencil有必要买正版吗?Apple Pencil平替推荐
  16. py爬虫pandas
  17. Chrome之“无法访问此网站 找不到服务器IP地址“解决方案
  18. 51单片机按键控制数码管显示0-9
  19. LinuxC语言——通讯录
  20. 利用CSS3动画制作“百度浏览器”官网奔跑的北极熊

热门文章

  1. 8、手动制作QFN10表贴封装
  2. Linux逻辑卷、物理卷、卷组常用命令
  3. 游戏五子棋(c语言)
  4. Toon Boom Harmony Premium 12.1.1 macOS苹果简体中文完美激活版
  5. 情人节,送你一朵小红花~
  6. 20220625阶段总结
  7. ‘黑-白’双剑,天下无间!
  8. 直播系统源码开发:关于安卓开发工具和obs直播推流
  9. 2022实操搬砖副业攻略
  10. 88-On Balance Volume 能量潮指标.(2015.7.4)