mysql - 将 CSV 数据导入 SQL 数据库

标签 mysql sql database csv

我有一个包含以下字段的表:

Name (varchar)
Ranking (int)
Age (int)
Favourite Court (varchar)

和这样的 CSV 文件

name;age;current_ranking;favourite_court
sample1;22;5;Hard
sample2;21;6;Clay

我尝试使用 MySQL 导入它: LOAD DATA LOCAL INFILE 'c:/players.csv' INTO TABLE Players fields TERMINATED BY ';'行终止于 '\n';将数据本地内文件 'c:/players.csv' 加载到表玩家字段中终止于 ';'以 '\n' 结尾的行 (name,age,current_ranking,favourite_court);,带或不带文件头(即 name;age...)。 它不起作用,字段困惑。为什么?

最佳答案

您需要命名表中的列,而不是文件中标题的列:

LOAD DATA LOCAL INFILE 'c:/players.csv' INTO TABLE players
FIELDS TERMINATED BY ';'
IGNORE 1 LINES
(Name, Age, Ranking, `Favourite Court`)

此外,如 LOAD DATA INFILE Syntax 下所述:

Note 

If you have generated the text file on a Windows system, you might have to use LINES TERMINATED BY '\r\n' to read the file properly, because Windows programs typically use two characters as a line terminator. Some programs, such as WordPad, might use \r as a line terminator when writing files. To read such files, use LINES TERMINATED BY '\r'

关于mysql - 将 CSV 数据导入 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12447741/

相关文章:

PHP 表单 MySql 编辑/更新 - 无法获取表单以填充数据

python - MySQL:如何从MySQL中提取大量数据而不阻塞它?

sql - Postgres vs oracle 做 100 万 sqrts 我做错了吗?

ruby-on-rails - 有没有一种方法可以添加到数据库列中的现有余额或金额,而无需在更新时替换它?

java - 在 PostgreSQL 中加入两个查询

mysql - 在 MySQL 中设置应用程序权限

mysql - MySQL 中何时使用单引号、双引号和反引号

php在html中显示mysql表

mysql - SQL COUNT 与 2 INNER JOINS

database - 没有 super 用户角色无法创建扩展