MySQL-多集加载数据填充

MySQL-多集加载数据填充,mysql,csv,load,Mysql,Csv,Load,我有一个像这样的表名: No | Name | Inserted_Date | Inserted_By ===================================== 然后我得到了这样的文件名.csv no,name 1,jhon 2,alex 3,steve 我想使用如下语法加载这些文件表\u name: LOAD DATA INFILE 'name.csv' INTO TABLE table1 FIELDS TERMINATED BY ',' LINES TERMINATED

我有一个像这样的
表名:

No | Name | Inserted_Date | Inserted_By
=====================================
然后我得到了这样的文件名.csv

no,name
1,jhon
2,alex
3,steve
我想使用如下语法加载这些文件
表\u name

LOAD DATA INFILE 'name.csv' INTO TABLE table1
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
???
No | Name  | Inserted_Date | Inserted_By
=====================================
1  | jhon  | sysdate()     | me
2  | ales  | sysdate()     | me
3  | steve | sysdate()     | me
问题是,我应该在
上放什么?
这样我就可以像这样存储数据:

LOAD DATA INFILE 'name.csv' INTO TABLE table1
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
???
No | Name  | Inserted_Date | Inserted_By
=====================================
1  | jhon  | sysdate()     | me
2  | ales  | sysdate()     | me
3  | steve | sysdate()     | me

在mysql中使用load data命令无法做到这一点。数据必须在输入文件中

如果您使用的是Linux,那么使用sed或类似工具将额外的字段数据添加到输入文件中就足够容易了

另一种方法是上传文件,然后运行查询,用所需数据更新缺少的字段


您还可以在表上设置触发器,以便在插入时填充这些字段,前提是您希望使用mysql用户名值。

我不知道表中是否已经存在列
inserted\u date
inserted\u by
。如果否,则可以在运行加载数据填充之前添加它们:

LOAD DATA INFILE 'name.csv' INTO TABLE table1
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(@no, @name)
set
  no = @no,
  name = @name,
  inserted_date = now(),
  inserted_by = 'me'

像这样的东西可以做到:

LOAD DATA INFILE 'name.csv' INTO TABLE table1 
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
    SET inserted_date=CURRENT_DATE(), inserted_by='me'
请看一下手册:

在数据库中一分钟内插入超过7000000条记录的批量(带计算的超高速查询)


RRP和RRP_nl和RRP_bl不在csv中,但我们在计算后插入该值。

这与已发布到该问题的4年答案有什么不同?它不会增加任何价值。这是一个不同的答案。此选项使用的是
加载数据
本地
填充
,而不仅仅是
加载数据填充
。请添加有关您的答案以及如何解决问题的更多描述和/或信息,以便其他人可以轻松理解,而无需进行澄清