我收到一条mySQL错误,说'ADDRESS_LONGI_LATIT_LOCATION'不能为空。可能'geomfromtext / pointfromtext'返回null。这里有什么不对?任何帮助表示赞赏。
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'))
根据specification of ST_geomFromText()
(geomfromtext()
是一个弃用的同义词,你不应该使用它):
如果geometry参数是
NULL
或不是语法上格式良好的几何,或者如果SRID参数是NULL
,则返回值为NULL
。
实际上,你的论证在语法上不是很好,因为每个坐标包含两个点。您可以通过以下方式检查:
select geomfromtext('Point(10.20.45 34.23.79)')
结果(try online):
(空值)
使用单个点,它可以工作:
select geomfromtext('Point(10.2045 34.2379)')
结果(true online)
Aiibaihibiobroz:129 Abscix 5 Bakya ==
这同样适用于ST_PointFromText(()
,除了你仍然需要使用the WKT format所以你需要使用POINT()
:
select pointfromtext('point(10.2045 34.2379)')
结果(try online):
Aiibaihibiobroz:129 Abscix 5 Bakya ==
基本上这两个函数是相同的,除了pointfromtext()
强制执行点结果。