2017-03-21 37 views
0

我有很多文件,例如:20170319,20170320 ... 对于每个文件我有2列,一个用户名和另一个是数据。 我创建了一个表如何将多个文件加载到mysql中自动添加日期信息?

create table A(user varchar(35), date date, data varchar(35), primary key(user, date)); 

然后,我想这些文件加载​​到数据库中,并在日期字段使用的文件名作为具体日期。

我还可以使用某物,如:

Load data infile '20170320' into table A 
+0

查看[manual](https://dev.mysql.com/doc/refman/5.7/en/load-data.html)中的'SET'。您应该可以用这种方式添加日期的自定义列。 –

回答

0

答案是,你不能在MySQL单独做到这一点,你需要使用构建load data infile陈述与源自适当SET clause外部程序或脚本文件名称:

SET子句可用于提供不是从输入 文件派生的值。下面的语句设置栏3,以当前的日期和 时间:

LOAD DATA INFILE 'file.txt' 
    INTO TABLE t1 
    (column1, column2) 
    SET column3 = CURRENT_TIMESTAMP; 

这样做的原因是:

  1. load data infile不能使用文件名作为输入变量
  2. 没有的MySQL准备好的报表使用prepare statement,也不允许stored procedures被允许使用load data infile声明。