Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用“加载数据本地内嵌”时添加额外的数据列_Mysql - Fatal编程技术网

Mysql 使用“加载数据本地内嵌”时添加额外的数据列

Mysql 使用“加载数据本地内嵌”时添加额外的数据列,mysql,Mysql,我使用下面的LoadDataLocalInfle查询从文件中读取数据并将其插入表中。一切都很顺利。但是,我需要修改查询以支持一个额外的需求 我需要在数据中添加一个额外的列。基本上,我的原始数据不包括日期字段,我需要包括一列,在该列中我可以添加数据导入的日期。该文件将每天自动导入一次,我需要将该日期添加到数据中 使用“加载数据本地填充”时,是否有方法添加数据列?我可以轻松捕获今天的日期,但我不知道如何将其添加到下面的查询中 $insert_query = LOAD DATA LOCAL INFIL

我使用下面的LoadDataLocalInfle查询从文件中读取数据并将其插入表中。一切都很顺利。但是,我需要修改查询以支持一个额外的需求

我需要在数据中添加一个额外的列。基本上,我的原始数据不包括日期字段,我需要包括一列,在该列中我可以添加数据导入的日期。该文件将每天自动导入一次,我需要将该日期添加到数据中

使用“加载数据本地填充”时,是否有方法添加数据列?我可以轻松捕获今天的日期,但我不知道如何将其添加到下面的查询中

$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结尾案例