将值插入MySQL多面数据数据类型字段时出错

时间:2016-09-24 08:43:55

标签: mysql spatial

我对多字形字段的理解是 - 一个字段,可以保存单个单元格中多个多边形的信息。

我的表结构是 -

CREATE TABLE `test_table` (
  `key` int(11) NOT NULL AUTO_INCREMENT,
  `selected_polygon` multipolygon DEFAULT NULL,
  PRIMARY KEY (`key`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

我正在尝试将以下数据插入多字段字段 -

SET @g ='MULTIPOLYGON(((45.55215127678357 -122.65701296506451, 
45.52329405876074 -122.63572695432232, 
45.52473727138698 -122.56156923947856, 
45.54397656857749- 122.56088259397076, 
45.559363267325914 -122.60345461545514, 
45.56224780438123 -122.65220644650982, 
45.55215127678357 -122.65701296506451)))';

INSERT INTO test_table(selected_polygon) VALUES (GeomFromText(@g));

每次我尝试执行上述语句时都会出现以下错误 -

  

错误代码:3037。提供给功能的GIS数据无效   st_geometryfromtext。

1 个答案:

答案 0 :(得分:2)

当您查看数据时,会发现一个很难发现的细微错误。

SET @g ='MULTIPOLYGON(((45.55215127678357 -122.65701296506451, 
45.52329405876074 -122.63572695432232, 
45.52473727138698 -122.56156923947856, 
45.54397656857749  -122.56088259397076,  
45.559363267325914 -122.60345461545514, /* this line had - in wrong place */
45.56224780438123 -122.65220644650982, 
45.55215127678357 -122.65701296506451)))';

请使用以上内容。