11

我正在尝试用我所在国家的地理位置填充我的数据库。我的一张表有 4 个字段:ID[PK]、纬度。经度安第地理点

EDIT `SCDBs`.`Punto_Geografico`;

SET @lat = 18.469692;

SET @lon = -63.93212;

SET @g = 'POINT(@lat @lon)';

UPDATE Punto_Geografico SET latitude = @lat, longitude =@lon, geoPoint =@g WHERE idpunto_geografico = 0;

我收到以下错误:错误代码:1416 无法从您发送到 GEOMETRY 字段的数据中获取几何对象

我很确定“geoPoint”字段是一个带有空间索引的 POINT 字段。我错过了什么吗.14

4

2 回答 2

13

您需要使用以下语法:

UPDATE ... SET latitude=18, longitute=-63, geoPoint=GeomFromText('POINT(18 -63)') WHERE ...
于 2012-04-11T08:54:48.047 回答
11

尝试在不将您的值分配给服务器值的情况下执行此操作。特别是如果它们包含函数调用。MySQL 将变量的内容视为纯文本,不会看到其中有函数调用。

UPDATE ... SET latitude=18, longitute=-63, geoPoint=POINT(18 -63) WHERE ...
于 2011-03-13T23:00:30.693 回答