mysql5.7升级到mysql8.0发现生产环境服务会报错
Error querying database. Cause: java.sql.SQLSyntaxErrorException: FUNCTION GeomFromText does not exist
在MySQL 8.0中,`GeomFromText`函数已经被弃用,取而代之的是`ST_GeomFromText`函数。你可以将你的查询从`GeomFromText`更新为`ST_GeomFromText`。这是因为MySQL 8.0引入了标准化的空间函数,以便更好地与其他数据库系统兼容。
例如,将以下查询:
SELECT GeomFromText('POINT(1 1)');
更新为:
SELECT ST_GeomFromText('POINT(1 1)');
`ST_GeomFromText` 和 `GeomFromText` 在功能上基本相同,都是用来将文本表示的几何图形转换为几何对象。然而,它们之间的区别主要在于标准化和一致性方面:
ST代表“Spatial Type”或“Spatial and Temporal”,这是为了符合OpenGIS简单特征规范(Simple Features Specification for SQL,简称SFSQL)。该规范由Open Geospatial Consortium (OGC)定义,旨在提供标准化的空间数据操作函数。
ST_GeomFromText是符合 OpenGIS 简单特征规范(Simple Features Specification)的标准函数。MySQL 8.0 引入了该函数以符合这些标准。
GeomFromText 是 MySQL 在早期版本中引入的非标准函数,已在 MySQL 8.0 中被弃用。
ST_GeomFromText 使用了 ST_ 前缀,这与其他标准空间函数保持一致,例如ST_AsText, ST_Contains 等。