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