文档章节

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

吕不为
 吕不为
发布于 2016/12/08 21:43
字数 170
阅读 35
收藏 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
博文 43
码字总数 15586
作品 0
海淀
PgSQL · 特性分析 · 逻辑导出pg_dump分析

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

卓刀
07/10
0
0
PostgreSQL数据库和与mysql的性能比

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

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

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

MrQ被抢注了
05/23
0
0
Ubuntu下PostgreSQL数据库集群(PL/Proxy)配置方法

数据库集群:N个数据库堆到一起,找一个当个头头,管理所有的数据库并让它们协同工作。当然了,要不要找个头头,找几个头头,如何协作等等问题这些都可以商量和约定,因此,也就形成了不同的...

hl_linux
2012/07/12
0
0
科普一种可以将PG变成通用SQL引擎的技术

作者介绍 伊翼,网名“小wing”,野生PG爱好者,从事数据库相关工作已近十年,目前供职于全球最大的通讯设备供应商。 原标题:《当FDW遇上GO》 FDW(Foreign Data Wrapper)是PostgreSQL(下...

伊翼
06/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

gson1.7.1线程并发导致空指针问题

java.lang.NullPointerExceptionat com.google.gson.FieldAttributes.getAnnotationFromArray(FieldAttributes.java:231)at com.google.gson.FieldAttributes.getAnnotation(FieldAttribut......

东风125
34分钟前
1
0
以太坊RPC接口使用

以太坊RPC接口文档: https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientversion 使用方式: 比如我要调用某个合约的balanceOf(address _owner)方法。 因为没有改变合约的状态,所以...

王坤charlie
今天
2
0
C#下的一个好用的日历库(sxtwl_cpp),支持农历转公历,和公历转农历等功能

sxtwl_cpp是寿星天文历的C++版本实现。支持多种语言的绑定 代码首页 懒人包 懒人包使用方法 1、右链工程中的引用-》添加引用-》浏览-》选中dotnet目录下的sxtwl.net.dll 2、生成解决方案-》找...

元谷
今天
1
0
C++基础知识

链接:https://zhuanlan.zhihu.com/p/38399566 本文主要提一下以下三个区别: 引用必须初始化,而指针可以不初始化。 我们在定义一个引用的时候必须为其指定一个初始值,但是指针却不需要。 ...

悲催的古灵武士
今天
1
0
Oracle备份脚本,保留10天数据

@echo off echo 删除10天前的备分文件和日志forfiles /p "D:\oracleback\backfile" /m *.dmp /d -10 /c "cmd /c del @path" forfiles /p "D:\oracleback\backfile" /m *.log /d -10......

lyle_luo
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部