MySQL导入-CSV文件拒绝正确导入



我正试图将以下文件导入MySQL数据库:

https://drive.google.com/drive/folders/1WbRdNgqVre3wN4DpJZ-08jtGkJtCDJNQ?usp=sharing

使用";数据导入向导";在MySql Workbench上,由于某种原因;218\223行导入成功";,而该文件包含接近100K。我试着在第210-230行周围寻找特殊的字符,也删除了所有字符,但仍然是这样。

该文件是微软必应地理位置的CSV,用于微软广告活动,从微软网站下载(使用那里的广告帐户(。我一直在谷歌上搜索,阅读,StackOverflow,玩文件和不同的导入选项。。。

我试着把文件切成小块,但新创建的文件不知怎么就完全损坏了。。。编码似乎是UTF-8,换行符都是"UTF-8";\n〃;。我试着把它们都改成";\\r\n";使用notepad++,但仍然会发生同样的情况。

文件在Excel中正常打开,看起来正常,通过CSVlint.io…

唯一奇怪的是,该文件在某些值上包含引号,但在其余值上没有(例如第219行(。是的,我知道这听起来会是个问题,但我删除了它,以及所有其他带有引号的行,它仍然会发生。。。还尝试用"ENCLOSED BY"加载;,见下文(。

我还尝试使用SQL语句导入:

LOAD DATA LOCAL INFILE 'c:\Users\Gilad\Downloads\GeoLocations.csv'
INTO TABLE aw_geo_map_bmsl
FIELDS TERMINATED BY ','
(tried also with: ENCLOSED BY '"')
LINES TERMINATED BY '/n'
IGNORE 1 ROWS;

(必须将OPT_LOCAL_INFILE=1添加到Advanced上的连接,才能允许MySQL Workbench访问我计算机上的本地文件(

由此得到CCD_ 3。

帮助?

结语:最后我放弃了所有这些导入向导,改为使用旧的"从Excel中生成SQL语句";方法

我将CSV数据导入Excel。注意:在这种情况下,我发现我需要使用Excel中的数据导入向导(但该向导工作得很好(,才能将编码更改为UTF,Excel 2010将其选择为"UTF";窗口";这是错误的。

在处理了一些我喜欢的数据后,我使用了以下Excel代码:

=CONCATENATE("INSERT INTO aw_geo_map_bmsl (`Location Id`,Name,`Canonical Name`,`Location Type`,Status,`Adwords Location Id`)
VALUES (",
A2,
",""",B2,"""",
",""",C2,"""",
",""",D2,"""",
",""",E2,"""",
",",F2,");")

为每一行生成INSERT语句,然后复制粘贴和仅粘贴值,然后粘贴到编辑器中,删除Excel添加的附加引号,并在MySQL Workbench中运行它,MySQL Workbench逐行运行它(需要一些时间(,您可以看到进度。

节省了我几个小时玩";自动工具";由于未知原因而失败,并且没有给出正确的日志ootb。

警告:不要对未初始化的代码执行此操作,因为它容易受到SQL注入的攻击。在这种情况下,它是来自微软的数据,所以我知道这很好。

最新更新