专栏首页fanzhh的技术笔记从csv文件中导入数据到Postgresql

从csv文件中导入数据到Postgresql

从csv文件中导入数据到Postgresql已有表中,如果数据已经存在则更新,如果不存在则新建记录。 根据csv文件格式,先在postgresql中建立临时表:

=# create table tmp
  (no int,cname varchar,name varchar,dosage varchar,
    std varchar, number varchar,standard varchar,
    address varchar,is_base boolean,is_province_base boolean,
    provence varchar,remark varchar)

导入临时表:

=# copy tmp from '/tmp/20171228.csv' delimiter ',' csv;

更新已有表:

=# update oldtable set is_base=t.is_base,
    address=t.address, standard=t.standard,
    is_province_base=t.is_province_base,
    provence=t.provence, remark='2018-1-16'
    from (select number,is_base,address,standard,
      is_province_base,provence from tmp ) as t
      where trim(number)=trim(t.number);
UPDATE 804

插入原表中没有的新记录:

=# insert into oldtable
(number,name,provence,is_base,address,
  standard,std,cname,is_province_base)
  select number,name,provence,is_base,
  address,standard,std,cname,is_province_base
  from tmp where trim(number) not in
    (select trim(number) from oldtable);
INSERT 0 222

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用docker封装古董web.py+postgresql应用

    title: 使用docker封装古董python web.py + postgresql应用 author: fanzhh category: - 技术...

    fanzhh
  • 已有目录推送到远程git新建项目中&定时备份

    fanzhh
  • hexo创建自定义about页

    然后修改所用主题目录下的_config.yml文件,将menu中about前的注释去掉。

    fanzhh
  • SetTimer在无窗口和有窗口线程的使用

     今天犯了一个粗心的错误,在无窗口线程中,SetTimer中设置计时器ID,而WM_TIMER消息响应函数中得到的计时器ID却不是之前设置的计时器ID.

    雪影
  • R语言基础绘图教程——第1章:R语言长用的绘图系统

    一般的绘图,base+ggplot2就已经够用了,所以,我们的课程就是以这2个系统进行绘图教学。

    DoubleHelix
  • 功能测试之单词测频

      寻找自己的程序存在的Bug,同时合并他人测试我的代码所找到的Bug,修改上述两种方式找到的Bug。

    小老鼠
  • 整合QC质控结果的利器——MultiQC

    NGS技术的进步催生了新的实验设计、分析类型和极高通量测序数据的生成。对于这些数据的质量评估,每一步分析结果的评估是后续结果可信度的衡量和保障。不少生信工具都可...

    生信宝典
  • Python入门笔记(15):对文件的操作(1)

    http://www.cnblogs.com/BeginMan/p/3166644.html

    bear_fish
  • 16种方式呈现百分比关系

    大数据文摘
  • 这些年,聊天机器人产业遇到的坑…

    ? 我自己在某厂做了两年语音个人助理,后来自己出来创业,首先就否定了这个方向,或者它的变种(如问答系统、智能音箱、客服机器人、聊天机器人、陪伴机器人等等,各...

    机器人网

扫码关注云+社区

领取腾讯云代金券