Chinaunix首页 | 论坛 | 博客
  • 博客访问: 208854
  • 博文数量: 21
  • 博客积分: 1546
  • 博客等级: 上尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-10 14:54
文章分类

全部博文(21)

文章存档

2020年(1)

2019年(3)

2015年(2)

2014年(1)

2011年(1)

2009年(7)

2008年(4)

2007年(2)

我的朋友

分类: Mysql/postgreSQL

2009-05-24 11:09:03


pg_dump 是postgresql自带的备份导出工具, 其中有个选项 --table="模式名.表名"可以导出某个表.

 
我重新修改了pg_dump, 让table选项扩展, 加上where表达式, 可以选择条件输出表的部分
 
具体用法 --table="模式名.表名 where ....",若要多个表,可多加几个--table选项.
 
如 pg_dump --table="public.test where t_id>100 " 数据库名.
 
分享以下:
 
版本10.7, 压缩库为zlib1.dll .
 
注意:
1、因为加where导出的数据,不是表的全部,如果DROP了表,再恢复,将导致原表数据不全
所以有where 选项的导出 会自动加上 --data-only ,且自动转为sql明文格式, 只备份数据,不备份表结构(如drop、create语句),避免误操作导致数据库恢复时丢失数据
2、where 选项的导出档中的copy语句前上会附加 delete 语句,方便导入,如delete from public.test where t_id>100,  不过delete 语句有bug,对复杂的where选项将产生不正确的delete语句,请仔细检查自行更正。

阅读(4411) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~