如何在MySql数据库中正确设置具有类型点的字段的值?

时间:2017-09-28 14:02:28

标签: mysql database gps geospatial mysql-spatial

我对地理空间数据不太了解,我有以下问题。我正在使用 MySql ,我发现在尝试将 point 字段的值添加为此表行中的类型时遇到了一些困难。

我有一张这样的表:

CREATE TABLE MarketDetails (
  id              BigInt(20) NOT NULL AUTO_INCREMENT,
  localization_id BigInt(20) NOT NULL,
  market_name     VarChar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
  market_cod      VarChar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci,
  description     Text CHARACTER SET latin1 COLLATE latin1_swedish_ci,
  gps             point, 
  PRIMARY KEY (
      id
  )
)

正如您所见,此表包含 gps 字段,其类型为。在我看来,这种数据类型最适合存储点的GPS坐标。

我已尝试使用IDE插入此字段的值,但它不起作用...使用我的IDE我可以插入所有其他字段值但不能插入 gps 字段值。

如何手动尝试?例如,我已插入此记录:

id               localization_id      market_name       market_cod       description                  gps                                                                                                                                                                                                                                                            
---------------------------------------------------------------------------------------------------------------
1                31                   Kibuye            cod001           Kibuye Village Market        

如何正确创建更新 SQL查询以更新此记录,并使用这些坐标设置 gps 字段?:

lat: -2,17897
long: 29,371491

我正在尝试这样的事情,但它不起作用:

UPDATE  MarketDetails
SET     gps = Point(ST_GeomFromText('POINT(1 1)'))
WHERE id = 1

我收到此错误消息:

#42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') WHERE id = 1' at line 2

有什么问题?我错过了什么?我该如何解决这个问题?

0 个答案:

没有答案