转存数据一记

作者: triplestudio | 来源:发表于2020-02-25 00:21 被阅读0次

偶得数据一块,形如下:

{
 "SRCB": "深圳农村商业银行",
 "BGB": "广西北部湾银行",
 "SHRCB": "上海农村商业银行",
 "BJBANK": "北京银行",
 "WHCCB": "威海市商业银行",
 "BOZK": "周口银行",
 "KORLABANK": "库尔勒市商业银行",
 "SPABANK": "平安银行",
 "SDEB": "顺德农商银行",
......
}

欲存为基础数据,建项程控、寻求工具终觉繁琐。

灵感一现,::json 出现在脑海中,有它,这一块数据可以纹丝不动进行解析。
过程:解析之 - 建表 - 遍历插入之 - 表格显示之
这其中,防重建错误,防重复插入错误,PostgreSQL 皆有优雅处理策略。

写好基本结构,留一空予数据块,部分或全部,来之安之,可重复执行,谓之幂等。
基础结构如下:

DO $$
DECLARE 
    lv_row record; 
    jsonObj json := ''::json; /* 留空予数据块 */
BEGIN   
    -- 建表
    create table if not exists  bank(id varchar(10) primary key, name varchar(40));
    -- 遍历插入
    FOR lv_row IN SELECT * FROM json_each(jsonObj) LOOP  
        insert into bank(id, name) values( lv_row.key, jsonObj ->> lv_row.key) on conflict(id) do nothing;
    END LOOP;   
END $$;

-- 显示表格
select * from bank;

实例运行如下:


运行结果

知识点:
表不存在时才创建表create table if not exists bank(id varchar(10) primary key, name varchar(40));
json 行遍历 json_each(jsonObj)
插入冲突 on conflict(id) do nothing

相关文章

  • 转存数据一记

    偶得数据一块,形如下: 欲存为基础数据,建项程控、寻求工具终觉繁琐。 灵感一现,::json 出现在脑海中,有它,...

  • [转]dump

    动词:一般指将数据导出、转存成文件或静态形式。比如可以理解成:把内存某一时刻的内容,dump(转存,导出,保存)成...

  • 数据库恢复

    1、数据库故障与恢复 建立数据冗余:数据转存和建立日志文件1、事务故障:程序执行错误(逻辑错误【非法输入、数据丢失...

  • mysql数据转存到mongodb

    概述 现在比较推荐的数据存储方式是sql+nosql,而这个搭配方式中mysql+mongodb是比较流行的,所以...

  • 使用总结|关于RecycleView实现单选的使用总结

    近日项目将一个ScrollView+LinearLayou重写成RecycleView,并将界面保存的本地数据转存...

  • 转存

    待我长发及腰,将军归来可好? 此身君子意逍遥,怎料山河萧萧。 天光乍破遇,暮雪白头老。 寒剑默听奔雷,长枪独守空壕...

  • 转存

    蛇先生×小仓鼠 1.蛇先生是动物园的蛇先生。 小仓鼠是动物园里蛇先生的晚餐。 “蛇先生!你打算吃我吗!” “……”...

  • 转存

    送君千里直至峻岭变平川。 惜别伤离临请饮酒六两三。 一两愿你江南多雨带油伞。 二两愿你酷暑可以轻摇扇。 三两愿你入...

  • 转存

    晚安前,马克一下昨天的小幸福: 工作关系,久不陪他散步了,昨天刚好guyu同志带着小麦过来取东西,顺带下去……扣扣...

  • 转存

    奇葩说里的一段话,“曾经我热衷于教育别人,后来我发现管好自己比教育别人,要靠谱得多。成长就是你最终会发现世界上什么...

网友评论

    本文标题:转存数据一记

    本文链接:https://www.haomeiwen.com/subject/mgrnqhtx.html