我有一张表格,我从CSV文件上传数据。
字段如下所示:
StudentName | SubjectName| Result
---------------------------------
Adam | Math | Fail
Bob | History | Pass
Catherine | Math | Pass
Dave | Science | Fail
Evan | History | Pass
这里的主键是(StudentName,SubjectName)
我使用以下代码将数据输入表中:
Load data local infile 'C:\\Test.csv' INTO TABLE test_table
Fields terminated by ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
Lines terminated by '\n'
ignore 1 lines;
我需要导入多个csv文件。可能存在关键重复。我正在尝试在遇到重复时更新某个字段。
即:如果有重复,UPDATE field RESULT if : value for result in the duplicate entry is "Pass".
每个csv文件将用于进行测试的每一天。
如果学生至少获得一次通过,表格应反映出来。
我应该如何更改代码才能实现这一目标?
答案 0 :(得分:0)
加载脚本本身无法帮助您一起执行表插入和更新。您可以先将CSV文件加载到临时表中,然后使用脚本对最终表进行“Upsert”,然后截断临时表,或者每次创建和删除临时表。 Add a link for your reference
答案 1 :(得分:0)
我会先将每个新文件加载到临时表中。这在插入真实表时提供了更多选项。有点像: