【问题标题】:MySQL 5.7 error: Cannot get geometry object from data you send to the GEOMETRY fieldMySQL 5.7 错误:无法从您发送到 GEOMETRY 字段的数据中获取几何对象
【发布时间】:2016-10-03 13:15:24
【问题描述】:

我有一个专栏让我对 MySQL Server 5.7.11 感到头疼。

它的类型是 POINT,我可以毫无问题地将其更改为 GEOMETRY

当我现在尝试将其从 GEOMETRY 更改为 POINT 时,我收到以下错误:

Error 1416: Cannot get geometry object from data you send to the GEOMETRY field SQL Statement: ALTER TABLEtable CHANGE COLUMNcolumn_namecolumn_namePOINT NOT NULL;

我不明白为什么我可以用一种方式而不是另一种方式来改变它。

我一直遇到POINT 数据类型的问题,尤其是当我尝试执行 select 语句时,它有时会出现同样的错误。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    “GEOMETRY 可以存储任何类型的几何值。其他单值类型(POINT、LINESTRING 和 POLYGON)将它们的值限制为特定的几何类型。”

    因此您可以将 POINT 转换为 GEOMETRY - 但是因为 GEOMETRY 可以包含其他几何值,所以您不能采用其他方式。

    https://dev.mysql.com/doc/refman/5.7/en/spatial-datatypes.html

    【讨论】:

    • 如果数据是有效的 POINT 怎么办?该错误听起来像是在尝试并失败。
    • 我还看到某些选择出现此错误的其他一些情况(在转换之前和之后),尽管我想我会为此做一个单独的问题。
    • 我认为在尝试转换值后它不会失败 - 它在更新之前没有检查该列中的所有值 - 它只是告诉你一般的 GEOMETRY 列无法转换为特定的 POINT 列。
    猜你喜欢
    • 2016-03-22
    • 2019-11-20
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2020-03-05
    • 2023-04-02
    • 2019-06-08
    • 2017-11-28
    相关资源
    最近更新 更多