mysql 8.0版本 error 3516 ;error 3618
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相关推荐
- MySQL 8.0版本驱动更换
MySQL8.0版本需要更换驱动为"com.mysql.cj.jdbc.Driver",之前的"com.mysql.jdbc.Driver"已经不能在MySQL ...
- MySQL 8.0版本无法使用 node、Navicat等三方工具连接的问题
问题描述: 在官网下载mysql之后,一切按照默认配置安装完毕. (windows 7 64位操作系统) 使用 MySQL Workbench 8.0 CE 登录本地库,正常: 使用 MySQL Wo ...
- 关于mysql 5.0版本java项目导入mysql8.0的问题
java项目是mysql5.0版本的,本机mysql是8.0版本的,不兼容,解决方法如下: 1.更换数据库驱动,数据库连接驱动下载链接http://central.maven.org/maven2/m ...
- MySQL 8.0版本安装后,安装目录下找不到my.ini文件
安装路径是: 找了半天都没有找到,肿么办? 最后在C盘下找到了: C:\ProgramData\MySQL\MySQL Server 8.0
- Linux环境——MySQL安装及配置(8.0版本)
虚拟机环境是Linux Red Hat Enterprlse Linux (64位),本次安装的是Mysql 8.0版本. 由于有经验了,所以又弄了台虚拟机练手,承接上一篇博客(https://ww ...
- MySQL 最新8.0版本windows系统下数据库的安装、配置与使用实例演示,客户端使用ip连接数据库失败问题处理
MySQL 8.0版本数据库安装与配置演示 第一章:安装与配置 ① 下载与安装 ② 配置环境变量 ③ 配置 mysql 的 my.ini 文件 ④ 初始化与重置密码 第二章:问题解决 ① MySQL ...
- mysql80版本连接 1251_解决Navicat Premium 连接 MySQL 8.0 报错1251的问题分析
人闲太久,努力一下就以为是在拼命. 一.问题 Navicat Premium 连接 MySQL 8.0 报错: 1251 - Client does not support authenticatio ...
- 关于MySQL 8.0的几个重点新特性及其他版本浅谈
大家好今天又与大家见面了.IT技术无领域.国界之分,不断学习最新技术走在IT技术前沿一直是我们的目标网站模板下载争取把自己所学的知识,所经历的经验,拿出来与大家分享,共同成长与进步.在当前这个群雄并起 ...
- mysql8.0创建属性,MySQL 8.0新特性 — 管理端口的使用简介
前言 下面这个报错,相信大多数童鞋都遇见过:那么碰到这个问题,我们应该怎么办呢?在MySQL 5.7及之前版本,出现"too many connection"报错,超级用户root ...
最新文章
- 开发的AI程序员“抄”代码,被骂惨的GitHub到底冤不冤?
- 欢迎使用CSDN-markdown编辑器(此为使用指南,自己还不熟练有些功能的使用)
- boost::spirit模块实现利用 Karma 生成器的替代方案和内置匹配功能的测试程序
- [伤了昨天的心 裂成碎片和沙一起飞]五香里脊
- python dll注入 网络_python – 检测反射型DLL注入
- 续——《RedHat/Fedora等非ubuntu的Linux系统星空极速netkeeper拨号上网 》
- 深度linux magento,linux下安装magento
- 设计一个矩形类rectangle_使用Python super()为您的类增强
- 2021年中国船舶甲板市场趋势报告、技术动态创新及2027年市场预测
- IT学子成长指导类文章链接(十二)
- matlab中 nntwarn off,network的subsindex的定义问题
- HG255D[OpenWrt]从入门到精通
- 低速硬件接口之RS485接口自收发隔离多节点分享
- 微信小程序开发(3.选项卡)
- Apple Pencil有必要买正版吗?Apple Pencil平替推荐
- py爬虫pandas
- Chrome之“无法访问此网站 找不到服务器IP地址“解决方案
- 51单片机按键控制数码管显示0-9
- LinuxC语言——通讯录
- 利用CSS3动画制作“百度浏览器”官网奔跑的北极熊