代码之家  ›  专栏  ›  技术社区  ›  Jeff Storey

MySQL批量插入几何字段

  •  2
  • Jeff Storey  · 技术社区  · 14 年前

    1:GeomFromText('Polygon(0 0, 1 1, 2 2, 0 0)')
    2:GeomFromText('Polygon(0 0, 1 2, 2 2, 0 0)')
    

    在我的模式中,第一个字段是整数,第二个是几何体

    我试着加载数据

    LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE `testDb`.`testTable` FIELDS TERMINATED BY ':' LINES TERMINATED BY '\n'
    

    Error Code 1416 Cannot get geometry object from data you send to the GEOMETRY field
    

    如果我试着做一个单独的插入,比如:

    INSERT INTO TABLE testTable(id,region) VALUES (1,GeomFromText('Polygon(0 0, 1 1, 2 2, 0 0)'))
    

    它工作没有问题。但是,对于大量插入来说,这是非常低效的。有人知道为什么批量加载会抛出这个错误吗?

    杰夫

    1 回复  |  直到 14 年前
        1
  •  4
  •   Joseph Lust    13 年前

    bulkinsert不计算sql语句,它只是将值放入db中。这意味着 GeomFromText('多边形(0 0,1 1,2 2,0 0)')

    强调的文本 列名是:

    LOAD DATA INFILE 'c:\myFile.txt'
    INTO TABLE `tbl_myTable`
    (@var1, @var2)
    SET
    obj_id = @var1,
    obj_geo = GeomFromText(@var2);