我正在尝试将CSV文件导入MySql中的新表。该文件有100万行,但MySql仅导入847行。1.我试着保存CSV文件并导入各种格式,utf-8,windows-1205等。
xdyibdwo1#
更新:我尝试用MSSQL导入(使用SSMS),这不仅给了我一个错误,而且告诉了我问题所在!我没有为char字段分配足够的空间,因为一些值有很长的文本字符串。我在SSMS中所做的就是将其更改为VARCHAR(max)和SSMS导入了所有百万行。这可能是MySql的解决方案,但由于MySQL Workbench没有告诉我确切的问题是什么,我已经卸载了它,并将继续与SSMS和MSSQL。
fnx2tebb2#
不要使用PhpMyAdmin或MySQL Workbench,我建议你使用命令行导入csv到MySQL,特别是如果它是一个大文件。它允许你从文本文件读取数据或导入数据到数据库非常快,读这个。使用此命令:
LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; IGNORE 1 ROWS;
LOCAL
table_name
FIELDS TERMINATED BY
ENCLOSED BY
" "
LINES TERMINATED BY
IGNORE 1 ROWS
有关更多详细信息,请查看manual。
eh57zj3b3#
如果任何列的数据类型为double/float并且有空单元格,请用NULL或NA替换它们。尝试导入CSV。这对我很有效。
ee7vknir4#
不要使用命令行,它需要设置环境参数,以允许您从本地csv文件导入。相反,使用导入向导对我来说要容易得多。
但是,我只导入前100行。我通过选择latin 1而不是默认的utf-8来解决这个问题https://bugs.mysql.com/bug.php?id=89044
yxyvkwin5#
不要使用“导入向导”,因为它不能正常工作。最好将数据库备份为SQL格式,然后完整导入。使用主菜单-〉服务器-〉数据导入https://www.youtube.com/watch?v=91hRSphTzdw
5条答案
按热度按时间xdyibdwo1#
更新:
我尝试用MSSQL导入(使用SSMS),这不仅给了我一个错误,而且告诉了我问题所在!我没有为char字段分配足够的空间,因为一些值有很长的文本字符串。我在SSMS中所做的就是将其更改为VARCHAR(max)和SSMS导入了所有百万行。这可能是MySql的解决方案,但由于MySQL Workbench没有告诉我确切的问题是什么,我已经卸载了它,并将继续与SSMS和MSSQL。
fnx2tebb2#
不要使用PhpMyAdmin或MySQL Workbench,我建议你使用命令行导入csv到MySQL,特别是如果它是一个大文件。它允许你从文本文件读取数据或导入数据到数据库非常快,读这个。
使用此命令:
LOCAL
。参考:link.table_name
更改为目标表名。FIELDS TERMINATED BY
默认情况下,CSV使用逗号标识单个数据值。ENCLOSED BY
表示双引号" "
环绕值。LINES TERMINATED BY
指定换行符。IGNORE 1 ROWS
这个命令告诉MySQL跳过第一行。如果CSV包含列标题,我们想忽略它导入到我们的表中,我们想使用这个命令。有关更多详细信息,请查看manual。
eh57zj3b3#
如果任何列的数据类型为double/float并且有空单元格,请用NULL或NA替换它们。尝试导入CSV。这对我很有效。
ee7vknir4#
不要使用命令行,它需要设置环境参数,以允许您从本地csv文件导入。
相反,使用导入向导对我来说要容易得多。
但是,我只导入前100行。
我通过选择latin 1而不是默认的utf-8来解决这个问题
https://bugs.mysql.com/bug.php?id=89044
yxyvkwin5#
不要使用“导入向导”,因为它不能正常工作。最好将数据库备份为SQL格式,然后完整导入。使用主菜单-〉服务器-〉数据导入
https://www.youtube.com/watch?v=91hRSphTzdw