Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 加载数据填充和线字符串_Mysql - Fatal编程技术网

Mysql 加载数据填充和线字符串

Mysql 加载数据填充和线字符串,mysql,Mysql,我想导入包含以下列的大型CSV文件 SegmentId;Lengthmm;RoadClass;OptimalSpeedKph;SpeedLimitKph;WKT 1;7329;1;120;70;LINESTRING (28.97845 41.067332,28.978537 41.067332) ... 我正在使用加载数据填充。问题是WKT是一个LINESTRING。 实际上,如果我使用以下查询添加一个条目: INSERT INTO FCD VALUES (3,1,1,1,1,LineStr

我想导入包含以下列的大型CSV文件

SegmentId;Lengthmm;RoadClass;OptimalSpeedKph;SpeedLimitKph;WKT
1;7329;1;120;70;LINESTRING (28.97845 41.067332,28.978537 41.067332)
...
我正在使用加载数据填充。问题是
WKT
是一个LINESTRING。 实际上,如果我使用以下查询添加一个条目:

INSERT INTO FCD 
VALUES (3,1,1,1,1,LineStringFromText( 'LINESTRING (28.947971 41.050192,28.94754 41.049887)'));
它被插入到表中

但是,我不知道如何在LOAD DATA INFILE命令中访问WKT参数并对其进行转换

LOAD DATA LOCAL INFILE '/home/username/userfile.csv' 
INTO TABLE `FCD` 
FIELDS TERMINATED BY ';' 
       ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES
它给了我以下错误:

ERROR 1416 (22003): Cannot get geometry object from data you send to the GEOMETRY field

关于

创建一个暂存表,其中WKT是一个字符串。然后跑

INSERT INTO FCD 
     SELECT SegmentId, Lengthmm, RoadClass, OptimalSpeedKph, SpeedLimitKph, LineStringFromText (WKT) 
      FROM FCD_staging;

您可以使用变量从WKT列加载值,并使用语句的
SET
子句在表达式中使用变量值并将其分配给列:

LOAD DATA LOCAL INFILE '/home/username/userfile.csv'
INTO TABLE `FCD`
FIELDS TERMINATED BY ';'
       ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(SegmentId, Lengthmm, RoadClass, OptimalSpeedKph, SpeedLimitKph, @WKT)
SET WKT = LineStringFromText(@WKT)

我假设CSV文件的第一行包含表列的名称。备注列表中的最后一个字段是
@WKT
,它是一个变量,然后
SET
子句将变量
@WKT
的值用于表达式,然后将其分配给列
WKT

,我也将尝试您的解决方案。现在我正在尝试前面的答案,但我的文件包含1200万个条目。只要完成了,我就回答