从csv格式导入数据到postgres

从csv格式导入数据到postgres
功能:把csv里面的数据导入到postgres数据库。

实现步骤:

(1)查看数据,取得所有的字段名称

"ID","CALLID","CALLERID","CALLEDID","LOGTIME","ACTION_TYPE","ACTION_DES"
5829,76881,cccccc,tttt,2009年07月13日09时57分34秒,"bbbbb",
5830,76881,cccccc,tttt,2009年07月13日09时57分34秒,"aaaaa","1\116.kkkk"
5831,76881,cccccc,tttt,2009年07月13日09时57分43秒,"aaaaa","1\142.kkkk"
5832,76881,cccccc,tttt,2009年07月13日09时57分46秒,"aaaaa","1\141.kkkk"
5833,76881,cccccc,tttt,2009年07月13日09时57分57秒,"aaaaa","1\116.kkkk"
5834,76881,cccccc,tttt,2009年07月13日09时58分07秒,"aaaaa","1\142.kkkk"

通过上面的字段名称和下面的数据,可以知道数据的字段名称和数据类型。

(2)根据字段名称和类型,写出创建表的脚本

drop table  aa_log ;

create table aa_log
(
    id int8,
    callid int8,
    callerid int8,
    calledid int8,
    logtime varchar(100),
    action_type varchar(100),
    action_des varchar(100)
);

脚本保存为/tmp/a.sql

(3)创建数据表

 $ psql -hlocalhost -U postgres -d logdb  -f  /tmp/a.sql

执行,创建数据表。

(4)修改数据
  上面的数据,字符串类型有"aaaaa" ,那么导入到数据库的时候,对应的值也会有符号"aaaaa",所以,其值实际是" "aaaaa"",为了避免这样,我们要先把数据里面的"去掉。
在vim里面,用%s/“//g把所有的"符号替换掉。

5829,76881,cccccc,tttt,2009年07月13日09时57分34秒,bbbbb,
5830,76881,cccccc,tttt,2009年07月13日09时57分34秒,aaaaa,1\116.kkkk
5831,76881,cccccc,tttt,2009年07月13日09时57分43秒,aaaaa,1\142.kkkk
5832,76881,cccccc,tttt,2009年07月13日09时57分46秒,aaaaa,1\141.kkkk
5833,76881,cccccc,tttt,2009年07月13日09时57分57秒,aaaaa,1\116.kkkk
5834,76881,cccccc,tttt,2009年07月13日09时58分07秒,aaaaa,1\142.kkkk

(5)删除title

把数据最上面的那行字段定义数据删除掉。否则会出现导入数据库错误。


(6)导入数据
logdb=# copy aa_log  from '/tmp/aa.csv' with delimiter ',';
COPY 273
logdb=#

(7)检查数据

至此,导入数据处理完毕。





|----------------------------------------------------------------------------------------|
                           版权声明  版权所有 @zhyiwww
            引用请注明来源 http://www.blogjava.net/zhyiwww   
|----------------------------------------------------------------------------------------|

你可能感兴趣的:(从csv格式导入数据到postgres)