从工作台向 MySQL 8.0 中插入一个点
Posted
技术标签:
【中文标题】从工作台向 MySQL 8.0 中插入一个点【英文标题】:Inserting a point into MySQL 8.0 from workbench 【发布时间】:2019-12-05 21:31:20 【问题描述】:我有一个名为“坐标”的列,类型为“点”。
这个查询:
update `my-db`.`community`
set `coordinates`= POINT( 31.9931217, 35.2823115 )
where 'id' = 1;
返回以下错误:
无法从您发送到 GEOMETRY 字段的数据中获取几何对象
这里的正确格式是什么?
【问题讨论】:
坐标字段有空值吗 你有没有索引,可能是因为这个。 ***.com/questions/5875327/… id 已编入索引。除此之外没有什么。 【参考方案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
SETcoordinates
=GeomFromText('POINT(31.9931217 35.2823115)') WHERE 'id' = 1;
试试看
【讨论】:
不,point(x, y) 也应该返回一个点对象。见dev.mysql.com/doc/refman/8.0/en/…以上是关于从工作台向 MySQL 8.0 中插入一个点的主要内容,如果未能解决你的问题,请参考以下文章