【问题标题】:How to import latitude and longitude data from a csv into a point data type column in MySQL如何将 csv 中的纬度和经度数据导入 MySQL 中的点数据类型列
【发布时间】:2021-05-27 18:00:52
【问题描述】:

我正在尝试将位置数据从 SQL Server 迁移到 MySQL。为此,我使用 c# 以下列格式将位置数据导出到 CSV 文件

5;1442891783;POINT(43.7070275,-79.3972633);2;351;0;1442891785
5;1442891846;POINT(43.7071198,-79.3972495);2;353;0;1442891848

当我尝试在 MySQL 中导入 CSV 文件时,出现以下错误

无法从您发送到 GEOMETRY 字段的数据中获取几何对象

我无法更改 MySQL 架构,因为其他客户端正在使用此架构。

这是架构的一部分

  `col1` int(11) NOT NULL,
  `col2` int(10) unsigned NOT NULL,
  `location` point NOT NULL,
  `col3` float NOT NULL,
  `col4` float NOT NULL,
  `col5` float NOT NULL,
  `col6` int(10) unsigned NOT NULL,
  PRIMARY KEY (`col1`,`col2`),
  SPATIAL KEY `location` (`location`),
  KEY `col2` (`col2`)

我是一名 MS SQL 人,对 MySQL 了解不多。

感谢任何帮助

【问题讨论】:

    标签: c# mysql import geolocation


    【解决方案1】:

    使用Input Preprocessing。类似的东西

    LOAD DATA INFILE 'filename.ext'
    INTO TABLE tablename
    COLUMNS TERMINATED BY ';'
    ( col1,
      col2,
      @location,
      col3,
      col4,
      col5,
      col6 )
    SET location = ST_GeometryFromText(@location)
    

    【讨论】:

      猜你喜欢
      • 2021-06-08
      • 2012-12-01
      • 2011-03-25
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多