使用linux shell脚本将转储数据插入Mysql

时间:2015-01-04 03:00:54

标签: mysql linux shell

我使用下面的脚本从textpad向sql插入数据。

#!/bin/bash

mysql --utest -ptest test << EOF

LOAD DATA INFILE 'test.txt'
    INTO TABLE content_delivery_process
    FIELDS TERMINATED BY ',';

EOF

在我的测试文件中,我有一个像

这样的格式
cast  ,    date   ,   name   ,   buy

我可以插入,但我需要格式如下,

 S.NO    |   date    |    name    |    buy    |    cast

2 个答案:

答案 0 :(得分:0)

您可以指定要导入的列:

来自MySQL手册:

MySQL LOAD DATA INFILE

  

以下示例加载persondata表的所有列:

LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata;
     

默认情况下,LOAD末尾没有提供列表   DATA INFILE语句,输入行应包含一个字段   每个表格列。

     

如果只想加载某些表的列,请指定一列   列表:

LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata (col1,col2,...);
     

如果中的字段顺序,您还必须指定列列表   输入文件与表中列的顺序不同。   否则,MySQL无法告诉如何将输入字段与表匹配   列。

你会包括“FIELDS TERMINATED BY'|';”最后导入用'|'分隔的数据符号

答案 1 :(得分:0)

希望这有帮助。

create table [YOUR TABLE]  ( `S.NO` INT AUTO_INCREMENT, date DATETIME, name VARCHAR(50), buy VARCHAR(50), cast VARCHAR(50));
Load data local infile 'test.txt' ignore into table  [YOUR TABLE] fields terminated by ',' lines terminated by '\n'(cast , date , name , buy);