postgresSQL導出數據

最近需要將postgres導出數據文件,用pgAdmin倒騰了半天還是沒有成功,最終用postgre的命令來實現了導出sql文件,操作如下:

進入postgres安裝目錄的bin目錄下

如我的是windows:

        C:\Program Files\PostgreSQL\10\bin

開始執行pg_dump命令:

    用法:  pg_dump [選項]... [數據庫名字]

一般選項:

  -f, --file=FILENAME          輸出文件或目錄名

  -F, --format=c|d|t|p         輸出文件格式 (定製, 目錄, tar)

                               明文 (默認值))

  -v, --verbose                詳細模式

  -V, --version                輸出版本信息,然後退出

  -Z, --compress=0-9           被壓縮格式的壓縮級別

  --lock-wait-timeout=TIMEOUT  在等待表鎖超時後操作失敗

  -?, --help                   顯示此幫助, 然後退出

控制輸出內容選項:

  -a, --data-only              只轉儲數據,不包括模式

  -b, --blobs                  在轉儲中包括大對象

  -c, --clean                  在重新創建之前,先清除(刪除)數據庫對象

  -C, --create                 在轉儲中包括命令,以便創建數據庫

  -E, --encoding=ENCODING      轉儲以ENCODING形式編碼的數據

  -n, --schema=SCHEMA          只轉儲指定名稱的模式

  -N, --exclude-schema=SCHEMA  不轉儲已命名的模式

  -o, --oids                   在轉儲中包括 OID

  -O, --no-owner               在明文格式中, 忽略恢復對象所屬者

  -s, --schema-only            只轉儲模式, 不包括數據

  -S, --superuser=NAME         在明文格式中使用指定的超級用戶名

  -t, --table=TABLE            只轉儲指定名稱的表

  -T, --exclude-table=TABLE    不轉儲指定名稱的表

  -x, --no-privileges          不要轉儲權限 (grant/revoke)

  --binary-upgrade             只能由升級工具使用

  --column-inserts             以帶有列名的INSERT命令形式轉儲數據

  --disable-dollar-quoting     取消美元 (符號) 引號, 使用 SQL 標準引號

  --disable-triggers           在只恢復數據的過程中禁用觸發器

  --exclude-table-data=TABLE   不轉儲指定名稱的表中的數據

  --inserts                    以INSERT命令,而不是COPY命令的形式轉儲數據

  --no-security-labels         不轉儲安全標籤的分配

  --no-tablespaces             不轉儲表空間分配信息

  --no-unlogged-table-data     不轉儲沒有日誌的表數據

  --quote-all-identifiers      所有標識符加引號,即使不是關鍵字

  --section=SECTION            備份命名的節 (數據前, 數據, 及 數據後)

  --serializable-deferrable   等到備份可以無異常運行

  --use-set-session-authorization

                               使用 SESSION AUTHORIZATION 命令代替

                ALTER OWNER 命令來設置所有權

聯接選項:

  -h, --host=主機名        數據庫服務器的主機名或套接字目錄

  -p, --port=端口號        數據庫服務器的端口號

  -U, --username=名字      以指定的數據庫用戶聯接

  -w, --no-password        永遠不提示輸入口令

  -W, --password           強制口令提示 (自動)

  --role=ROLENAME          在轉儲前運行SET ROLE

作者:不用加班的程序員
鏈接:https://www.jianshu.com/p/6b064c2ccf91
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

導入導出sql數據

一.導出數據庫及具體表

1.導出數據庫:方式一:pg_dump  -U  postgres  -f  c:\db.sql postgis

                           方式二:pg_dump  -U postgres  postgis > c:\db.sql

2.導入數據庫:方式一:psql  -d  postgis  -f  c:\db.sql  postgres

3.導出具體表:方式一:pg_dump -Upostgres -t mytable -f  dump.sql  postgres

4.導入具體表:方式一:psql  -d  postgis  -f  c:\ dump.sql postgres

參數:

       postgres:用戶

       postgis:數據庫名稱

       mytable:表名稱

        -f, --file=文件名: 輸出文件名

        -U, --username=名字:以指定的數據庫用戶聯接

二.導出數據格式詳解

用法:
  pg_dump [選項]... [數據庫名字]

一般選項:
  -f, --file=文件名        輸出文件名
  -F, --format=c|t|p       輸出文件格式 (定製,tar, 明文)
  -v, --verbose           詳細模式
  -Z, --compress=0-9       被壓縮格式的壓縮級別
--lock-wait-timeout=TIMEOUT 在等待表鎖超時後操作失敗
  --help                      顯示此幫助信息,然後退出
  --versoin                   輸出版本信息,然後退出

控制輸出內容選項:
  -a, --data-only         只轉儲數據,不包括模式
  -b, --blobs             在轉儲中包括大對象
  -c, --clean             在重新創建之前,先清除(刪除)數據庫對象
  -C, --create            在轉儲中包括命令,以便創建數據庫
  -E, --encoding=ENCODING     轉儲以ENCODING形式編碼的數據
  -n, --schema=SCHEMA      只轉儲指定名稱的模式
  -N,--exclude-schema=SCHEMA     不轉儲已命名的模式
  -o, --oids              在轉儲中包括OID
  -O, --no-owner          在明文格式中,忽略恢復對象所屬者

  -s, --schema-only       只轉儲模式,不包括數據
  -S, --superuser=NAME     在轉儲中, 指定的超級用戶名
  -t, --table=TABLE       只轉儲指定名稱的表
  -T, --exclude-table=TABLE      只轉儲指定名稱的表
  -x, --no-privileges      不要轉儲權限 (grant/revoke)
  --binary-upgrade        只能由升級工具使用
  --inserts                以INSERT命令,而不是COPY命令的形式轉儲數據
  --column-inserts         以帶有列名的INSERT命令形式轉儲數據
  --disable-dollar-quoting     取消美元 (符號)引號, 使用 SQL 標準引號
  --disable-triggers        在只恢復數據的過程中禁用觸發器
  --no-tablespaces          不轉儲表空間分配信息
  --role=ROLENAME        在轉儲前運行SETROLE
 --use-set-session-authorization
                          使用 SESSION AUTHORIZATION 命令代替
                          ALTER OWNER 命令來設置所有權

聯接選項:
  -h, --host=主機名        數據庫服務器的主機名或套接字目錄
  -p, --port=端口號        數據庫服務器的端口號
  -U, --username=名字      以指定的數據庫用戶聯接
  -w, --no-password       永遠不提示輸入口令

  -W, --password          強制口令提示 (自動)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章