如何在mySQL表中插入点

时间:2018-08-28 14:26:46

标签: mysql geometry point mysql-spatial

我收到一条mySQL错误,提示“ ADDRESS_LONGI_LATIT_LOCATION”不能为null。 'geomfromtext / pointfromtext'可能返回空值。怎么了任何帮助表示赞赏。

INSERT INTO address (ADDRESS_NICKNAME,ADDRESS_LONGI_LATIT_LOCATION) 
VALUES ('Testing',geomfromtext('Point(10.20.45 34.23.79)'))

另一种方式

INSERT INTO address (ADDRESS_NICKNAME,ADDRESS_LONGI_LATIT_LOCATION) 
VALUES ('Testing',pointfromtext('10.20.45 34.23.79'))

1 个答案:

答案 0 :(得分:1)

根据specification of ST_geomFromText()geomfromtext()是已弃用的同义词,您不应使用它):

  

如果几何参数为NULL或语法上格式不正确的几何,或者SRID参数为NULL,则返回值为NULL

实际上,您的论点在语法上并不正确,因为每个坐标都包含两个点。您可以使用以下简单方法进行检查:

select geomfromtext('Point(10.20.45 34.23.79)')

结果(try online):

  

(空)

只有一个点,它可以工作:

select geomfromtext('Point(10.2045 34.2379)')

结果(true online

  

AAAAAAEBAAAAYhBYObRoJED129eBcx5BQA ==

ST_PointFromText(()同样适用,除​​了您仍然需要使用the WKT format,因此您也需要使用POINT()

select pointfromtext('point(10.2045 34.2379)')

结果(try online):

  

AAAAAAEBAAAAYhBYObRoJED129eBcx5BQA ==

除了pointfromtext()强制得出点结果外,这两个函数基本上相同。