【问题标题】:Inserting a point into MySQL 8.0 from workbench从工作台向 MySQL 8.0 中插入一个点
【发布时间】:2019-12-05 21:31:20
【问题描述】:

我有一个名为“坐标”的列,类型为“点”。

这个查询:

update `my-db`.`community` 
set `coordinates`= POINT( 31.9931217, 35.2823115 ) 
where 'id' = 1;

返回以下错误:

无法从您发送到 GEOMETRY 字段的数据中获取几何对象

这里的正确格式是什么?

【问题讨论】:

标签: mysql sql geospatial mysql-8.0


【解决方案1】:

首先:'id' 不是有效的列名(这是一个字符串字面量)。作为一般提示,您应该避免引用列名,除非确实有必要(即,当名称包含特殊字符或以数字开头,或与保留字冲突时)。

除此之外,您的语法应该像described in the documentation 一样工作,并在this DB Fiddle 中测试。

您也可以try and use ST_GeomFromText(),如下:

update `my-db`.`community` 
SET `coordinates`= ST_GeomFromText('POINT(31.9931217 35.2823115)')
where `id` = 1;

【讨论】:

  • Point(x, y) 也应该返回一个点对象。见dev.mysql.com/doc/refman/8.0/en/…
  • @Shadow:你是对的,我测试过......我相应地修改了我的答案。感谢您提供信息......以及我的答案的更新!
【解决方案2】:

看起来正确的语法是

更新my-db.community SET coordinates=GeomFromText('POINT(31.9931217 35.2823115)') WHERE 'id' = 1;

试试看

【讨论】:

猜你喜欢
  • 2011-09-10
  • 2018-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 2014-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多