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语句,请仔细检查自行更正。
阅读(4426) | 评论(0) | 转发(0) |