Mysql 加载数据填充时db和csv文件中的不同列名
我正在尝试使用Mysql 加载数据填充时db和csv文件中的不同列名,mysql,Mysql,我正在尝试使用load data LOCAL infle将数据加载到MYSQL(在MAMP中)。数据库表中指定的某些数据元素与数据文件(多个csv文件)中的列名不同。例如:对于同一数据元素,数据库有一列“location\u Infected”,数据文件有一列名称“location\u name”。此外,数据文件的列数和列名也不完全相同。在数据库表中指定的~200个数据元素中,每个数据文件可能有大约30-40列。有人能建议如何在db表和csv文件之间映射列名吗?我尝试了以下操作,但它抛出了一个错
load data LOCAL infle
将数据加载到MYSQL(在MAMP中)。数据库表中指定的某些数据元素与数据文件(多个csv文件)中的列名不同。例如:对于同一数据元素,数据库有一列“location\u Infected”,数据文件有一列名称“location\u name”。此外,数据文件的列数和列名也不完全相同。在数据库表中指定的~200个数据元素中,每个数据文件可能有大约30-40列。有人能建议如何在db表和csv文件之间映射列名吗?我尝试了以下操作,但它抛出了一个错误:“位置\u名称不存在”
映射在
LOAD DATA
语句中定义。如果您想重新排列列,您应该在那里调整它们以匹配CSV文件中的任何内容
忽略1行
部分跳过了典型的CSV标题标签。导入过程不使用这些
在这种情况下,
SET location\u name=location\u impact
毫无意义。如果要导入到位置\u name
列中,请在定义中指定该列。您可以通过将列指定给伪变量跳过这些列:
LOAD DATA LOCAL INFILE 'pathtothefile' INTO TABLE tablename
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r'
IGNORE 1 LINES
(col1,col2,@skipme,@skipme,col3..............);
映射在LOAD DATA语句中定义。如果您想重新排列列,您应该在那里调整它们以匹配CSV文件中的任何内容 “忽略1行”部分跳过典型的CSV标题标签。导入过程不使用这些 在这种情况下,设置location\u name=location\u impacted毫无意义。如果要导入到“位置\名称”列中,请在定义中指定该列
LOAD DATA LOCAL INFILE 'pathtothefile' INTO TABLE tablename
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r'
IGNORE 1 LINES
(col1,col2,@skipme,@skipme,col3..............);