【问题标题】:Is there a way to import a CSV comma delimited file into mysql?有没有办法将 CSV 逗号分隔文件导入 mysql?
【发布时间】:2020-11-01 02:45:24
【问题描述】:
您好,我是网络开发新手。
我正在尝试使用“表数据导入向导”将 CSV 文件导入 mysql 工作台。但是,我读过我的文件需要是 CSV (MS-DOS),或者我收到以下错误:无法分析文件。请尝试更改编码类型。如果这没有帮助,可能文件不是:csv,或者文件是空的。
我不能使用 CSV (MS-DOS),因为我的数据包含许多不同的特殊字符,包括来自北欧的那些。当我将 CSV(逗号分隔)转换为 CSV(MS-DOS)时,特殊字符不再相同。
有没有办法将 CSV 逗号分隔文件导入 mysql 工作台?或者是否有更好的解决方案将我的数据放入表中,例如以某种方式在 MS-DOS 文件中保持特殊字符相同?
【问题讨论】:
标签:
mysql
database
csv
character-encoding
mysql-workbench
【解决方案1】:
您可以毫无问题地导入常规 CSV,只需确保编码匹配即可。
类似
LOAD DATA
INFILE yourfile.csv
INTO TABLE tablename
FIELDS
TERMINATED BY ','
ENCLOSED BY '"'
LINES
TERMINATED BY '\n'
IGNORE 1 LINES
应该可以。如果您的 CSV 没有标题,请从代码中删除 ignore 1 lines 行。如果您的格式不同,请相应地更改封闭字符和终止字符。
您可以在manual. 中查找确切的语法
【解决方案2】:
您的 CSV 应该可以正常工作。你只需要Load Data Infile
您可能需要定义这些设置
LOAD DATA INFILE 'c:/tmp/discounts.csv'
INTO TABLE discounts
-- comma seperated? maybe pipes '|'?
FIELDS TERMINATED BY ','
-- what surrounds input and is it optional? then add OPTIONALLY before ENCLOSED
ENCLOSED BY '"'
-- what is at the end of files
LINES TERMINATED BY '\n'
-- how many header rows are there, if any?
IGNORE 1 ROWS;