文档章节

如何写一个pg函数,可以把任意一个表生成insert语句

吕不为
 吕不为
发布于 2016/12/08 21:43
字数 170
阅读 37
收藏 0

看到stackoverflow有人问,如何给任意一个表生成insert语句,为了方便把数据从一个测试库转到另一个测试库上,为此,我写了一个小函数,没有做严格的测试,有兴趣的可以拿来试试。

create language plpythonu;
create or replace function geninsert1(_table text)
returns setof  text
as
$$
def isstr(v):
  if v == None:
    return 'NULL'
  elif isinstance(v,str):
    return "'%s'" % v
  else:
    return str(v)
    
alist=[]
result = plpy.execute("select * from "+_table)
for x in result:
  fieldlist=x.keys()
  fields=','.join(fieldlist)
  fvalues=','.join([isstr(x[y]) or 'NULL' for y in fieldlist])
  sql="insert into %s (%s) VALUES(%s)" % (_table,fields,fvalues)
  alist.append(sql)
return alist
return ''
$$
language plpythonu;
select * from geninsert1('mytable')

© 著作权归作者所有

共有 人打赏支持
吕不为
粉丝 4
博文 49
码字总数 16774
作品 0
海淀
私信 提问
使用 Go 编写 PostgreSQL 触发器

怎样应用 PostgreSQL 函数和 Golang 中的触发器? PostgreSQL 中的触发器是一种简单却功能强大的机制,它能反应表(table)中所正在发生的变化。 下文描述了怎样在 Go 中编写 PostgreSQL 触发...

oschina
2017/04/20
4.4K
6
PgSQL · 特性分析 · 逻辑导出pg_dump分析

概述 PostgreSQL本身提供了逻辑导出工具pgdumpall和pgdump,其中pgdumpall导出所有的数据库,pgdump导出单个数据库,两个工具的用法和参数不再详细介绍,本文从代码层面上对此过程进行分析。...

卓刀
2018/07/10
0
0
PostgreSQL表的行数统计

PostgreSQL表的行数统计 在很多情况下我们需要知道一个表的记录数有多少。如果你发现你有这样的需求,你还应该问问这样的统计的精确度到底又多高。如果你在做会计报表,你需要非常的精确。如...

长平狐
2013/01/06
3K
0
PostgreSQL数据库和与mysql的性能比

如果很粗略地观察 PostgreSQL,会觉得这个数据库系统和其它数据库很类似。因为 PostgreSQL 使用 SQL 语言来在执行资料的查询。这些资料通过连外键联系在一起,以一系列表格的形式存在。Postg...

谢思华
2013/11/15
0
0
写一个“特殊”的查询构造器 - (七、DML 语句、事务)

查询语句 (DQL) 的构造功能开发完毕,我们再给查询构造器增加一些对 DML (Data Manipulation Language) 语句的支持,如简单的 insert、update、delete 操作。 insert 我们先回顾下 PDO 原生的...

MrQ被抢注了
2018/05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue 对对象的属性进行修改时,不能渲染页面 vue.$set()

我在vue里的方法里给一个对象添加某个属性时,我console.log出来的是已经更改的object ,但是页面始终没有变化 原因如下: **受现代 JavaScript 的限制 (而且 Object.observe 也已经被废弃),...

Js_Mei
今天
2
0
开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
12
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
8
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
5
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部