Mysql 使用“加载数据本地内嵌”时添加额外的数据列
我使用下面的LoadDataLocalInfle查询从文件中读取数据并将其插入表中。一切都很顺利。但是,我需要修改查询以支持一个额外的需求 我需要在数据中添加一个额外的列。基本上,我的原始数据不包括日期字段,我需要包括一列,在该列中我可以添加数据导入的日期。该文件将每天自动导入一次,我需要将该日期添加到数据中 使用“加载数据本地填充”时,是否有方法添加数据列?我可以轻松捕获今天的日期,但我不知道如何将其添加到下面的查询中Mysql 使用“加载数据本地内嵌”时添加额外的数据列,mysql,Mysql,我使用下面的LoadDataLocalInfle查询从文件中读取数据并将其插入表中。一切都很顺利。但是,我需要修改查询以支持一个额外的需求 我需要在数据中添加一个额外的列。基本上,我的原始数据不包括日期字段,我需要包括一列,在该列中我可以添加数据导入的日期。该文件将每天自动导入一次,我需要将该日期添加到数据中 使用“加载数据本地填充”时,是否有方法添加数据列?我可以轻松捕获今天的日期,但我不知道如何将其添加到下面的查询中 $insert_query = LOAD DATA LOCAL INFIL
$insert_query = LOAD DATA LOCAL INFILE 'C:/mydata.csv'
INSERT INTO TABLE myTable
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(Column1,Column2,Column3,Column4);
$db->setQuery($insert_query);
$res = $db->query();
任何建议都将不胜感激!!!谢谢 与其将此字段添加到查询中,不如将其添加到表中:
ALTER TABLE myTable
ADD COLUMN datetime_entered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
然后,任何插入都将自动具有记录输入时间的时间戳。您可以在查询末尾添加一个
SET
子句,例如
LOAD DATA LOCAL INFILE 'C:/mydata.csv'
INSERT INTO TABLE myTable
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(Column1,Column2,Column3,Column4)
SET datetime = NOW();
这两个答案都有效,但这一个最适合我。Stackoverflow中答案的质量总是让我印象深刻。谢谢有没有办法修改csv文件中的数据?e、 g.用户可以上传csv与国家(如
INDIA
),但在数据库中,我需要存储其id,如91
@RNKushwaha,我认为您可以通过在列列表中包含一个变量来实现,如..,Column4,@country
,然后在SET子句中使用该变量,如SET datetime=NOW(),第5列=案例@国家,当“印度”时,则为91结尾案例