pg_dump를 사용하여 데이터베이스 내의 한 테이블에서만 삽입문 가져오기
나는 모든 행을 다음과 같이 얻을 수 있는 방법을 찾고 있습니다.INSERT
데이터베이스 내의 하나의 특정 테이블의 문 사용pg_dump
포스트그레에서.SQL.
예: 테이블 A와 테이블 A의 모든 행이 필요합니다.INSERT
명령문을 파일에 덤프해야 합니다.
이것이 가능합니까?
버전이 8.4.0 미만인 경우
pg_dump -D -t <table> <database>
더하다-a
이전에-t
테이블을 설정하는 CREATE TABLE 등을 제외하고 INSERT만 원하는 경우.
버전 >= 8.4.0
pg_dump --column-inserts --data-only --table=<table> <database>
삽입물을 .sql 파일에 덤프하려는 경우:
cd
원하는 위치로 이동합니다..sql
찾을 파일- 다음 명령을 실행합니다.
pg_dump --column-inserts --data-only --table=<table> <database> > my_dump.sql
참고:> my_dump.sql
이 명령의 일부는 my_sql이라는 이름의 .sql 파일에 모든 것을 넣을 것입니다.
원격 액세스를 사용하고 있고 모든 데이터베이스 데이터를 덤프하려는 경우 다음을 사용할 수 있습니다.
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
동일한 구조를 가진 경우 데이터베이스에 동일한 데이터를 삽입합니다.
대본에 내가 좋아하는 그런 것을 넣으시오:
#!/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
포스트그로스 12의 경우, 이것은 나에게 효과가 있었습니다.
pg_dump -d <database> -t <table> > DATA.dump
언급URL : https://stackoverflow.com/questions/2857989/using-pg-dump-to-only-get-insert-statements-from-one-table-within-database
'source' 카테고리의 다른 글
장고에서 "선택" 필드 옵션을 올바르게 사용하는 방법 (0) | 2023.06.01 |
---|---|
PostgreSQL: 명령줄에서 매개 변수를 전달하는 방법은 무엇입니까? (0) | 2023.06.01 |
큰따옴표 대 작은따옴표 (0) | 2023.06.01 |
할당 전에 참조된 로컬(?) 변수 (0) | 2023.06.01 |
CSS 100% 높이(패딩/마진 포함) (0) | 2023.06.01 |