在MySQL Workbench中,使用"表数据导入向导"导入CSV创建空表

时间:2015-10-02 00:22:44

标签: mysql csv mysql-workbench

我正在尝试使用表数据导入向导将csv文件导入MySQL表。 “配置导入设置”屏幕底部的示例部分看起来很好,当我运行导入时,它表示我的所有条目都已成功加载。但是,当我去查看表的内容时,只有列存在而且没有加载任何实际数据。有谁知道为什么会发生这种情况以及如何纠正它?

编辑:

这些是我的CSV文件中的几行:

  

STATION,STATION_NAME,ELEVATION,LATITUDE,LONGITUDE,DATE,MLY-TAVG-NORMAL,MLY-TMAX-NORMAL,MLY-TMIN-NORMAL,平均温度,最高温度,最低温度   GHCND:USW00094085,PIERRE 24 S SD US,647.4,44.0194,-100.353,201001,218,322,113,21.8,32.2,11.3   GHCND:USW00094085,PIERRE 24 S SD US,647.4,44.0194,-100.353,201002,246,354,137,24.6,35.4,13.7   GHCND:USW00094085,PIERRE 24 S SD US,647.4,44.0194,-100.353,201003,339,451,226,33.9,45.1,22.6   GHCND:USW00094085,PIERRE 24 S SD US,647.4,44.0194,-100.353,201004,463,588,337,46.3,58.8,33.7   GHCND:USW00094085,PIERRE 24 S SD US,647.4,44.0194,-100.353,201005,573,696,450,57.3,69.6,45

以下是导入过程的一些图片: Image1

Image2

Image3

Image4

Image5

Image6

这是我在尝试查看新创建的表时看到的内容: Image7

第二次编辑:

以下是我的设置图片:

Settings

这是我的CSV文件的图像,显​​示行结尾:

enter image description here

4 个答案:

答案 0 :(得分:8)

验证文件的编码。将源文件解析为UTF-8时,工作台在遇到非UTF-8字符时会无声地轰炸。我使用cp1250(Windows 1250)从Excel导出的文件,一切正常。

答案 1 :(得分:3)

您需要确保在导入表时正确设置了csv选项。

当您到达以下屏幕时,请注意红色箭头指向扳手的方式。通过单击该选项下拉菜单来设置行分隔符,将显示封闭字符串和字段分隔符。如果未正确设置,则数据加载失败。

enter image description here

以下是CSV文件示例。请注意如何在Notepad++中按下包装器按钮,以便您可以看到行尾。在这种情况下,行尾为 CR LF 。 Workbench Import向导的默认选项只是 LF 。此外,默认字段分隔符似乎是;而不是,

enter image description here

您可以在dev.mysql

了解更多信息

答案 2 :(得分:1)

我遇到了同样的问题,并尝试通过更改设置来解决它,但对我来说不起作用。 我只是将所有数据导入为txt数据类型,并且

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row list-group">
  <div class="item large-3 medium-6 columns end group-item-grid-default">
    <div class="post thumb-border" style="height: 20px;">
      <div class="post-thumb">

        <img src="image01.jpg" alt="Image 01" data-id="000001">


      </div>
      <!--post-thumb-->
    </div>
    <!--post thumb-border-->
  </div>
  <!--item-->
  <div class="item large-3 medium-6 columns end group-item-grid-default">
    <div class="post thumb-border" style="height: 20px;">
      <div class="post-thumb">

        <img src="image02.jpg" alt="Image 02" data-id="000002">


      </div>
      <!--post-thumb-->
    </div>
    <!--post thumb-border-->
  </div>
  <!--item-->
</div>
<!--item-->
</div>

稍后更正数据类型。

答案 3 :(得分:0)

尝试使用您的示例数据,导入正常。我想,进一步的数据一定有问题。也许一个(或多个)记录不是应该的。预览适用于第一个记录数,因此您的导入定义似乎很好。尝试导入较小的记录块。从1开始,扩展到十个等等。直到看到导入失败。您也可以尝试只使用一列,如果成功,则对失败的列进行二进制搜索。

注意:显示导入的行时存在错误(并且已针对下一个版本进行了修复)。这总是显示记录的总数,而不是实际导入的记录。