背景:R:\2012-04-19,R:\2012-04-20,这样的目录很多(一天一个目录,日期号为目录名),而且这样的目录下面也有很多sz000555.xls,sh60000.xls类似文件(前缀是股票代码)。 要求:把这些文件夹下的文件导入数据库。文件名为表名,如无则创建,文件夹名由“YYYY-MM-DD”变为“YYYYMMDD”做为rq字段的值。 进展: 一、现通过cmd的批处理模式下执行nyt.bat。 C:\Documents and Settings\Administrator>mysql -u root -p < nyt.bat nyt.bat内容如下: use stock; CREATE TABLE sz000548
(
rq date not null,
sj time not null,
cjj decimal(8,2) unsigned not null,
ss mediumint not null,
bs char(1) not null,
index (rq,cjj,bs)
); load data infile 'R:/2012-04-19/sz000548.xls' into table sz000548 IGNORE 1 LINES (sj, cjj,@dummy,ss,@dummy,bs) set rq = 201200419;
测试通过,可以建表,导入数据。 二、使用cmd命令,获取目录下的文件名 echo off &for /f "tokens=*" %i in ('dir/b/a') do echo %~ni >>files.txt 把所有文件名导出到了files.txt中。
下面一步怎么解决: 把导出的文件名做为变量,传给mysql。在建表、导入数据中使用?
解决方案 »
- 多表联查 再加上limit 字句...能不能来个人教教我怎么写
- ERROR 126 (HY000): Incorrect key file for table '/tmp/#sql_6f81_0.MYI'; try to r
- mysqlbinlog远程获取二进制的疑问
- 这个替换语句怎么写?
- 按in里的顺序排列
- 在mysql中定义的列(char)不能为空,为什么还能插入空值
- ERWin,PowerDesigner可以用于Postgresql吗
- SUSE 11下tomcat部署应用无法连接MYSQL问题
- sql server 的top关键字
- MySQL有没有一种机制,当某些数据更新时,通知连接到MySQL的应用程序?
- 请问数据库怎么建立多对多关系(最好以mysql为例)
- 谁可以推荐下MYSQL入门书籍啊。
然后再load data
for /f "tokens=*" %%i in ('dir/b/a') do (d:\mysql55\bin\mysql -uroot -p123 -e "use aa;create table `%%i`(id int)")
但是不知道mysql如何获取这两个变量。
`(id int)")R:\2012-04-19>(mysql -uroot -e "use nyt;create table `sz000559.xls`(id int)" )R:\2012-04-19>(mysql -uroot -e "use nyt;create table `sz000565.xls`(id int)" )R:\2012-04-19>(mysql -uroot -e "use nyt;create table `sz000566.xls`(id int)" )R:\2012-04-19>(mysql -uroot -e "use nyt;create table `sz000567.xls`(id int)" )以上是测试建库,通过。谢谢。还不知道怎么导入数据,正在测试。高手方便,直接给提示。
`(id int)")R:\2012-04-19>(mysql -uroot -e "use nyt;create table `sz000559.xls`(id int)" )R:\2012-04-19>(mysql -uroot -e "use nyt;create table `sz000565.xls`(id int)" )R:\2012-04-19>(mysql -uroot -e "use nyt;create table `sz000566.xls`(id int)" )R:\2012-04-19>(mysql -uroot -e "use nyt;create table `sz000567.xls`(id int)" )
以上是测试建库,通过。数据要怎么样导入呢?
可是要接收dos的变量,估计就只有用mysqlimport了。
for /f "tokens=*" %%i in ('dir/b/a') do (d:\mysql55\bin\mysql -uroot -p123 -e "use aa;create table `%%i`(id int);load data inifile `%%i` INTO TABLE `%%i`")