首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用pg_dump仅从数据库中的一个表中获取insert语句

使用pg_dump仅从数据库中的一个表中获取insert语句
EN

Stack Overflow用户
提问于 2010-05-18 22:08:10
回答 4查看 149.5K关注 0票数 143

我正在寻找一种方法,可以在PostgreSQL中使用pg_dump从数据库中的一个特定表中以INSERT语句的形式获取所有行。

例如,我的表A和表A中的所有行都需要作为INSERT语句,它还应该将这些语句转储到一个文件中。

这个是可能的吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-18 22:14:02

如果版本低于8.4.0

代码语言:javascript
复制
pg_dump -D -t <table> <database>

如果您只想要插入,则在-t之前添加-a,而不希望首先使用CREATE TABLE等命令来设置表。

版本>= 8.4.0

代码语言:javascript
复制
pg_dump --column-inserts --data-only --table=<table> <database>
票数 282
EN

Stack Overflow用户

发布于 2019-03-26 19:32:29

以防您使用远程访问并希望转储所有数据库数据,您可以使用:

pg_dump -a -h your_host -U your_user -W -Fc your_database > DATA.dump

它将创建一个包含所有数据库数据转储,并使用

pg_restore -a -h your_host -U your_user -W -Fc your_database < DATA.dump

在数据库中插入相同的数据,考虑到您有相同的结构

票数 5
EN

Stack Overflow用户

发布于 2018-11-28 01:57:04

放到脚本中我喜欢这样的东西:

代码语言:javascript
复制
#!/bin/bash
set -o xtrace # remove me after debug
TABLE=some_table_name
DB_NAME=prod_database

BASE_DIR=/var/backups/someDir
LOCATION="${BASE_DIR}/myApp_$(date +%Y%m%d_%H%M%S)"
FNAME="${LOCATION}_${DB_NAME}_${TABLE}.sql"

# Create backups directory if not exists
if [[ ! -e $BASE_DIR ]];then
       mkdir $BASE_DIR
       chown -R postgres:postgres $BASE_DIR
fi

sudo -H -u postgres pg_dump --column-inserts --data-only --table=$TABLE $DB_NAME > $FNAME
sudo gzip $FNAME
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2857989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档