11.4.4 几何格式正确性和有效性

对于几何值,MySQL 区分语法结构正确和几何有效的概念。

如果满足以下(非穷举性)列 table 中的条件,则该几何在语法上格式正确:

  • 线串至少有两点

  • 多边形至少有一个环

  • 多边形环是闭合的(第一个点和最后一个点相同)

  • 多边形环至少具有 4 个点(最小多边形是第一个点和最后一个点相同的三角形)

  • 集合不为空(GeometryCollection除外)

如果几何在语法上格式正确且满足以下(非穷举性)列 table 中的条件,则该几何在几何上有效:

  • 多边形不是自相交的

  • 多边形内圈位于外圈内

  • 多边形不具有重叠的多边形

如果几何结构的语法不正确,则空间功能将失败。解析 WKT 或 WKB 值的空间导入函数会因尝试创建语法上格式不正确的几何而产生错误。还检查语法格式正确性,以尝试将几何存储到 table 中。

允许插入,选择和更新几何无效的几何,但是它们在语法上必须格式正确。由于计算量大,MySQL 不会明确检查几何有效性。空间计算可能会检测到无效几何的某些情况并引发错误,但它们也可能会返回未定义的结果而不会检测到无效性。需要几何有效几何形状的应用程序应使用ST_IsValid()功能对其进行检查。