MySQL 8.4 发行说明
对于几何值,MySQL 区分语法良好形式和几何有效性这两个概念。
如果几何图形满足以下条件(非详尽列表),则它在语法上是良好形式的
Linestring 至少有两个点
多边形至少有一个环
多边形环是闭合的(第一个点和最后一个点相同)
多边形环至少有 4 个点(最小多边形是三角形,第一个点和最后一个点相同)
集合不为空(
GeometryCollection
除外)
如果几何图形在语法上是良好形式的并且满足以下条件(非详尽列表),则它在几何上是有效的
多边形不自相交
多边形的内部环位于外部环内
多边形不具有重叠的多边形
如果几何图形在语法上不是良好形式的,则空间函数将失败。解析 WKT 或 WKB 值的空间导入函数会为尝试创建语法上不是良好形式的几何图形的尝试引发错误。对于尝试将几何图形存储到表中,也会检查语法良好形式。
允许插入、选择和更新几何上无效的几何图形,但它们必须在语法上是良好形式的。由于计算成本高,MySQL 不会显式检查几何有效性。空间计算可能会检测到某些无效几何图形的情况并引发错误,但它们也可能会返回未定义的结果而不会检测到无效性。需要几何上有效的几何图形的应用程序应使用 ST_IsValid()
函数检查它们。