转 mysql数据导入的三种方法_[转]mysql 数据导入

处理重复主键

替换已有值

mysql> load data infile '/tmp/mytbl.txt' replace into table mytbl fields terminated by '\t' lines terminated by '\n'

表中已有则不导入

mysql> load data infile '/tmp/mytbl.csv' ignoreinto table mytbl fields terminated by ',' enclosed by '"' lines terminated by '\r\n'

跳过文件行

以下示例为跳过第一行

mysql> load data infile '/tmp/mytbl.txt' into table mytbl ignore 1 lines;

预处理

文件data.txt内容:

DateTimeNameWeightState

2006-09-0112:00:00Bill Wills200Nevada

2006-09-0209:00:00Jeff Deft150Oklahoma

2006-09-0403:00:00Bob Hobbs225Utah

2006-09-0708:00:00Hank Banks175Texas

文件必须被加载入如下的表

create table tbl

(

dt datetime,

last_name char(10),

first_name char(10),

weight_kg float,

st_abbrev char(2)

)

create table states

(

name varchar(20),

shortname char(2)

)

states 表中内容:

name shortname

Nevada NV

Oklahoma OK

Utah UT

Texas TX

insert into states

values('Nevada','NV')

,('Oklahoma','OK')

,('Utah', 'UT')

,('Texas', 'TX')

导入:

load data infile '/tmp/data.txt' into table tbl

ignore 1 lines

(@date,@time,@name,@weight_lb,@state)

set dt=concat(@date,' ',@time),

first_name=substring_index(@name,' ',1),

last_name=substring_index(@name,' ',-1),

weight_kg=@weight_lb * .454,

st_abbrev = (select shortname from states where name=@state);

结果:

mysql> select * from tbl;                                                                                                                                               +---------------------+-----------+------------+-----------+-----------+

| dt                  | last_name | first_name | weight_kg | st_abbrev |

+---------------------+-----------+------------+-----------+-----------+

| 2006-09-01 12:00:00 | Wills     | Bill       |      90.8 | NV        |

| 2006-09-02 09:00:00 | Deft      | Jeff       |      68.1 | OK        |

| 2006-09-04 03:00:00 | Hobbs     | Bob        |    102.15 | UT        |

| 2006-09-07 08:00:00 | Banks     | Hank       |     79.45 | TX        |

+---------------------+-----------+------------+-----------+-----------+

将windows本地文件导入到linux下的mysql数据库,加local

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值