佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > PostgreSQL教程(十八):客戶端命令(2)

PostgreSQL教程(十八):客戶端命令(2)

熱門標簽:鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化 百度競價排名 AI電銷 Linux服務(wù)器 地方門戶網(wǎng)站 呼叫中心市場需求 服務(wù)外包

七、pg_dump:

    pg_dump是一個用于備份PostgreSQL數(shù)據(jù)庫的工具。它甚至可以在數(shù)據(jù)庫正在并發(fā)使用時進行完整一致的備份,而不會阻塞其它用戶對數(shù)據(jù)庫的訪問。該工具生成的轉(zhuǎn)儲格式可以分為兩種,腳本和歸檔文件。其中腳本格式是包含許多SQL命令的純文本格式,這些SQL命令可以用于重建該數(shù)據(jù)庫并將之恢復(fù)到生成此腳本時的狀態(tài),該操作需要使用psql來完成。至于歸檔格式,如果需要重建數(shù)據(jù)庫就必須和pg_restore工具一起使用。在重建過程中,可以對恢復(fù)的對象進行選擇,甚至可以在恢復(fù)之前對需要恢復(fù)的條目進行重新排序。該命令的使用方式如下:
 

復(fù)制代碼 代碼如下:

    pg_dump [option...] [dbname]
 

    1. 命令行選項列表:

選項 說明
-a(--data-only) 只輸出數(shù)據(jù),不輸出模式(數(shù)據(jù)對象的定義)。這個選項只是對純文本格式有意義。對于歸檔格式,你可以在調(diào)用pg_restore時指定選項。
-b(--blobs) 在dump中包含大對象。
-c(--clean) 在輸出創(chuàng)建數(shù)據(jù)庫對象的SQL命令之前,先輸出刪除該數(shù)據(jù)庫對象的SQL命令。這個選項只是對純文本格式有意義。對于歸檔格式,你可以在調(diào)用 pg_restore時指定選項。
-C(--create) 先輸出創(chuàng)建數(shù)據(jù)庫的命令,之后再重新連接新創(chuàng)建的數(shù)據(jù)庫。對于此種格式的腳本,在運行之前是和哪個數(shù)據(jù)庫進行連接就不這么重要了。這個選項只是對純文本格式有意義。對于歸檔格式,你可以在調(diào)用pg_restore時指定選項。
-Eencoding 以指定的字符集創(chuàng)建該dump文件。
-ffile 輸出到指定文件,如果沒有該選項,則輸出到標準輸出。
-Fformat

p(plain): 純文本格式的SQL腳本文件(缺省)。c(custom): 輸出適合于pg_restore的自定義歸檔格式。 這是最靈活的格式,它允許對裝載的數(shù)據(jù)和對象定義進行重新排列。這個格式缺省的時候是壓縮的。t(tar): 輸出適合于pg_restore的tar歸檔文件。使用這個歸檔允許在恢復(fù)數(shù)據(jù)庫時重新排序和/或把數(shù)據(jù)庫對象排除在外。同i時也可能可以在恢復(fù)的時候限制對哪些數(shù)據(jù)進行恢復(fù)。

-n schema 只轉(zhuǎn)儲schema的內(nèi)容。如果沒有聲明該選項,目標數(shù)據(jù)庫中的所有非系統(tǒng)模式都會被轉(zhuǎn)儲。該選項也可以被多次指定,以指定不同pattern的模式。
-Nschema 不轉(zhuǎn)儲匹配schema的內(nèi)容,其他規(guī)則和-n一致。
-o(--oids) 作為數(shù)據(jù)的一部分,為每個表都輸出對象標識(OID)。
-O(--no-owner) 不輸出設(shè)置對象所有權(quán)的SQL命令。
-s(--schema-only) 只輸出對象定義(模式),不輸出數(shù)據(jù)。
-Susername 指定關(guān)閉觸發(fā)器時需要用到的超級用戶名。它只有在使用--disable-triggers的時候才有關(guān)系。
-ttable 只輸出表的數(shù)據(jù)。很可能在不同模式里面有多個同名表,如果這樣,那么所有匹配的表都將被轉(zhuǎn)儲。通過多次指定該參數(shù),可以一次轉(zhuǎn)儲多張表。這里還可以指定和psql一樣的pattern,以便匹配更多的表。(關(guān)于pattern,基本的使用方式是可以將它視為unix的通配符,即*表示任意字符,?表示任意單個字符,.(dot)表示schema和object之間的分隔符,如a*.b*,表示以a開頭的schema和以b開頭的數(shù)據(jù)庫對象。如果沒有.(dot),將只是表示數(shù)據(jù)庫對象。這里也可以使用基本的正則表達式,如[0-9]表示數(shù)字。)
-Ttable 排除指定的表,其他規(guī)則和-t選項一致。
-x(--no-privileges) 不導(dǎo)出訪問權(quán)限信息(grant/revoke命令)。
-Z0..9 聲明在那些支持壓縮的格式中使用的壓縮級別。 (目前只有自定義格式支持壓縮)
--column-inserts 導(dǎo)出數(shù)據(jù)用insert into table_name(columns_list) values(values_list)命令表示,這樣的操作相對其它操作而言是比較慢的,但是在特殊情況下,如數(shù)據(jù)表字段的位置有可能發(fā)生變化或有新的字段插入到原有字段列表的中間等。由于columns_list被明確指定,因此在導(dǎo)入時不會出現(xiàn)數(shù)據(jù)被導(dǎo)入到錯誤字段的問題。
--inserts 導(dǎo)出的數(shù)據(jù)用insert命令表示,而不是copy命令。即便使用insert要比copy慢一些,但是對于今后導(dǎo)入到其他非PostgreSQL的數(shù)據(jù)庫是比較有意義的。
--no-tablespaces 不輸出設(shè)置表空間的命令,如果帶有這個選項,所有的對象都將恢復(fù)到執(zhí)行pg_restore時的缺省表空間中。
--no-unlogged-table-data 對于不計入日志(unlogged)的數(shù)據(jù)表,不會導(dǎo)出它的數(shù)據(jù),至于是否導(dǎo)出其Schema信息,需要依賴其他的選項而定。
-h(--host=host) 指定PostgreSQL服務(wù)器的主機名。
-p(--port=port) 指定服務(wù)器的偵聽端口,如不指定,則為缺省的5432。
-U(--username=username) 本次操作的登錄用戶名,如果-O選項沒有指定,此數(shù)據(jù)庫的Owner將為該登錄用戶。
-w(--no-password) 如果當前登錄用戶沒有密碼,可以指定該選項直接登錄。

2. 應(yīng)用示例:

復(fù)制代碼 代碼如下:

    # -h: PostgreSQL服務(wù)器的主機為192.168.149.137。
    # -U: 登錄用戶為postgres。
    # -t: 導(dǎo)出表名以test開頭的數(shù)據(jù)表,如testtable。
    # -a: 僅僅導(dǎo)出數(shù)據(jù),不導(dǎo)出對象的schema信息。
    # -f: 輸出文件是當前目錄下的my_dump.sql
    # mydatabase是此次操作的目標數(shù)據(jù)庫。
    /> pg_dump -h 192.168.149.137 -U postgres -t test* -a -f ./my_dump.sql mydatabase
    #-c: 先輸出刪除數(shù)據(jù)庫對象的SQL命令,在輸出創(chuàng)建數(shù)據(jù)庫對象的SQL命令,這對于部署干凈的初始系統(tǒng)或是搭建測試環(huán)境都非常方便。
    /> pg_dump -h 192.168.220.136 -U postgres -c -f ./my_dump.sql mydatabase
    #導(dǎo)出mydatabase數(shù)據(jù)庫的信息。在通過psql命令導(dǎo)入時可以重新指定數(shù)據(jù)庫,如:/> psql -d newdb -f my_dump.sql
    /> pg_dump -h 192.168.220.136 -U postgres -f ./my_dump.sql mydatabase
    #導(dǎo)出模式為my_schema和以test開頭的數(shù)據(jù)庫對象名,但是不包括my_schema.employee_log對象。
    /> pg_dump -t 'my_schema.test*' -T my_schema.employee_log mydatabase > my_dump.sql
    #導(dǎo)出east和west模式下的所有數(shù)據(jù)庫對象。下面兩個命令是等同的,只是后者使用了正則。
    /> pg_dump -n 'east' -n 'west' mydatabase -f my_dump.sql
    /> pg_dump -n '(east|west)' mydatabase -f my_dump.sql

八、pg_restore:


    pg_restore用于恢復(fù)pg_dump導(dǎo)出的任何非純文本格式的文件,它將數(shù)據(jù)庫重建成保存它時的狀態(tài)。對于歸檔格式的文件,pg_restore可以進行有選擇的恢復(fù),甚至也可以在恢復(fù)前重新排列數(shù)據(jù)的順序。

    pg_restore可以在兩種模式下操作。如果指定數(shù)據(jù)庫,歸檔將直接恢復(fù)到該數(shù)據(jù)庫。否則,必須先手工創(chuàng)建數(shù)據(jù)庫,之后再通過pg_restore恢復(fù)數(shù)據(jù)到該新建的數(shù)據(jù)庫中。該命令的使用方式如下:
 

復(fù)制代碼 代碼如下:

    pg_restore [option...] [filename]
 

    1. 命令行選項列表:

 

選項 說明
filename 指定要恢復(fù)的備份文件,如果沒有聲明,則使用標準輸入。
-a(--data-only) 只恢復(fù)數(shù)據(jù),而不恢復(fù)表模式(數(shù)據(jù)對象定義)。
-c(--clean) 創(chuàng)建數(shù)據(jù)庫對象前先清理(刪除)它們。
-C(--create) 在恢復(fù)數(shù)據(jù)庫之前先創(chuàng)建它。(在使用該選項時,數(shù)據(jù)庫名需要由-d選項指定,該選項只是執(zhí)行最基本的CREATE DATABASE命令。需要說明的是,歸檔文件中所有的數(shù)據(jù)都將恢復(fù)到歸檔文件里指定的數(shù)據(jù)庫中)。
-ddbname 與數(shù)據(jù)庫dbname建立連接并且直接恢復(fù)數(shù)據(jù)到該數(shù)據(jù)庫中。
-e(--exit-on-error)

如果在向數(shù)據(jù)庫發(fā)送SQL命令的時候遇到錯誤,則退出。缺省是繼續(xù)執(zhí)行并且在恢復(fù)結(jié)束時顯示一個錯誤計數(shù)。

-Fformat 指定備份文件的格式。由于pg_restore會自動判斷格式,因此指定格式并不是必須的。如果指定,它可以是以下格式之一:t(tar): 使用該格式允許在恢復(fù)數(shù)據(jù)庫時重新排序和/或把表模式信息排除出去,同時還可能在恢復(fù)時限制裝載的數(shù)據(jù)。 c(custom):該格式是來自pg_dump的自定義格式。這是最靈活的格式,因為它允許重新對數(shù)據(jù)排序,也允許重載表模式信息,缺省情況下這個格式是壓縮的。
-I index 只恢復(fù)指定的索引。
-l(--list) 列出備份中的內(nèi)容,這個操作的輸出可以作為-L選項的輸入。注意,如果過濾選項-n或-t連同-l選項一起使用的話,他們也將限制列出的條目。
-L list-file 僅恢復(fù)在list-file中列出的條目,恢復(fù)的順序為各個條目在該文件中出現(xiàn)的順序,你也可以手工編輯該文件,并重新排列這些條目的位置,之后再進行恢復(fù)操作,其中以分號(;)開頭的行為注釋行,注釋行不會被導(dǎo)入。
-n namespace 僅恢復(fù)指定模式(Schema)的數(shù)據(jù)庫對象。該選項可以和-t選項聯(lián)合使用,以恢復(fù)指定的數(shù)據(jù)對象。
-O(--no-owner) 不輸出設(shè)置對象所有權(quán)的SQL命令。
-Pfunction-name(argtype [, ...])  

只恢復(fù)指定的命名函數(shù)。該名稱應(yīng)該和轉(zhuǎn)儲的內(nèi)容列表中的完全一致。

-s(--schema-only) 只恢復(fù)表結(jié)構(gòu)(數(shù)據(jù)定義)。不恢復(fù)數(shù)據(jù),序列值將重置。
-Susername 指定關(guān)閉觸發(fā)器時需要用到的超級用戶名。它只有在使用--disable-triggers的時候才有關(guān)系。
-t table 只恢復(fù)指定表的Schema和/或數(shù)據(jù),該選項也可以連同-n選項指定模式。
-x(--no-privileges) 不恢復(fù)訪問權(quán)限信息(grant/revoke命令)。
-1(--single-transaction) 在一個單一事物中執(zhí)行恢復(fù)命令。這個選項隱含包括了--exit-on-error選項。
--no-tablespaces 不輸出設(shè)置表空間的命令,如果帶有這個選項,所有的對象都將恢復(fù)到執(zhí)行pg_restore時的缺省表空間中。
--no-data-for-failed-tables 缺省情況下,即使創(chuàng)建表失敗了,如該表已經(jīng)存在,數(shù)據(jù)加載的操作也不會停止,這樣的結(jié)果就是很容易導(dǎo)致大量的重復(fù)數(shù)據(jù)被插入到該表中。如果帶有該選項,那么一旦出現(xiàn)針對該表的任何錯誤,對該數(shù)據(jù)表的加載將被忽略。
--role=rolename 以指定的角色名執(zhí)行restore的操作。通常而言,如果連接角色沒有足夠的權(quán)限用于本次恢復(fù)操作,那么就可以利用該選項在建立連接之后再切換到有足夠權(quán)限的角色。
-h(--host=host) 指定PostgreSQL服務(wù)器的主機名。
-p(--port=port) 指定服務(wù)器的偵聽端口,如不指定,則為缺省的5432。
-U(--username=username) 本次操作的登錄用戶名,如果-O選項沒有指定,此數(shù)據(jù)庫的Owner將為該登錄用戶。
-w(--no-password) 如果當前登錄用戶沒有密碼,可以指定該選項直接登錄。

 2. 應(yīng)用示例: 
 

復(fù)制代碼 代碼如下:

    #先通過createdb命令,以myuser用戶的身份登錄,創(chuàng)建帶恢復(fù)的數(shù)據(jù)newdb
    /> createdb -U myuser newdb
    #用pg_restore命令的-l選項導(dǎo)出my_dump.dat備份文件中導(dǎo)出數(shù)據(jù)庫對象的明細列表。
    /> pg_restore -l my_dump.dat > db.list
    /> cat db.list
    2; 145344 TABLE species postgres
    4; 145359 TABLE nt_header postgres
    6; 145402 TABLE species_records postgres
    8; 145416 TABLE ss_old postgres
    10; 145433 TABLE map_resolutions postgres
    #將以上列表文件中的內(nèi)容修改為以下形式。
    #主要的修改是注釋掉編號為2、4和8的三個數(shù)據(jù)庫對象,同時編號10的對象放到該文件的頭部,這樣在基于該列表
    #文件導(dǎo)入時,2、4和8等三個對象將不會被導(dǎo)入,在恢復(fù)的過程中將先導(dǎo)入編號為10的對象的數(shù)據(jù),再導(dǎo)入對象6的數(shù)據(jù)。
    /> cat new_db.list
    10; 145433 TABLE map_resolutions postgres
    ;2; 145344 TABLE species postgres
    ;4; 145359 TABLE nt_header postgres
    6; 145402 TABLE species_records postgres
    ;8; 145416 TABLE ss_old postgres   
    #恢復(fù)時指定的數(shù)據(jù)庫是newdb,導(dǎo)入哪些數(shù)據(jù)庫對象和導(dǎo)入順序?qū)凑課ew_db.list文件中提示的規(guī)則導(dǎo)入。
    /> pg_restore -d newdb -L new_db.list my_dump.dat

九、psql:

    PostgreSQL的交互終端,等同于Oracle中的sqlplus。
    1. 常用命令行選項列表:

 

選項 說明
-c command 指定psql執(zhí)行一條SQL命令command(用雙引號括起),執(zhí)行后退出。
-d dbname 待連接的數(shù)據(jù)庫名稱。
-E   回顯由\d和其他反斜杠命令生成的實際查詢。
-f filename 使用filename文件中的數(shù)據(jù)作為命令輸入源,而不是交互式讀入查詢。在處理完文件后,psql結(jié)束并退出。
-h hostname 聲明正在運行服務(wù)器的主機名
-l 列出所有可用的數(shù)據(jù)庫,然后退出。
-L filename 除了正常的輸出源之外,把所有查詢記錄輸出到文件filename。
-o filename 將所有查詢重定向輸出到文件filename。
-p port 指定PostgreSQL服務(wù)器的監(jiān)聽端口。
-q --quiet 讓psql安靜地執(zhí)行所處理的任務(wù)。缺省時psql將輸出打印歡迎和許多其他信息。
-t --tuples-only 關(guān)閉打印列名稱和結(jié)果行計數(shù)腳注等信息。
-U username 以用戶username代替缺省用戶與數(shù)據(jù)庫建立連接。

 2. 應(yīng)用示例:  
 

復(fù)制代碼 代碼如下:

    #先通過createdb命令,以myuser用戶的身份登錄,創(chuàng)建帶恢復(fù)的數(shù)據(jù)newdb
    /> createdb -U myuser newdb
    #用pg_restore命令的-l選項導(dǎo)出my_dump.dat備份文件中導(dǎo)出數(shù)據(jù)庫對象的明細列表。
    /> pg_restore -l my_dump.dat > db.list
    /> cat db.list
    2; 145344 TABLE species postgres
    4; 145359 TABLE nt_header postgres
    6; 145402 TABLE species_records postgres
    8; 145416 TABLE ss_old postgres
    10; 145433 TABLE map_resolutions postgres
    #將以上列表文件中的內(nèi)容修改為以下形式。
    #主要的修改是注釋掉編號為2、4和8的三個數(shù)據(jù)庫對象,同時編號10的對象放到該文件的頭部,這樣在基于該列表
    #文件導(dǎo)入時,2、4和8等三個對象將不會被導(dǎo)入,在恢復(fù)的過程中將先導(dǎo)入編號為10的對象的數(shù)據(jù),再導(dǎo)入對象6的數(shù)據(jù)。
    /> cat new_db.list
    10; 145433 TABLE map_resolutions postgres
    ;2; 145344 TABLE species postgres
    ;4; 145359 TABLE nt_header postgres
    6; 145402 TABLE species_records postgres
    ;8; 145416 TABLE ss_old postgres   
    #恢復(fù)時指定的數(shù)據(jù)庫是newdb,導(dǎo)入哪些數(shù)據(jù)庫對象和導(dǎo)入順序?qū)凑課ew_db.list文件中提示的規(guī)則導(dǎo)入。
    /> pg_restore -d newdb -L new_db.list my_dump.dat

    3. 內(nèi)置命令列表:
    psql內(nèi)置命令的格式為反斜杠后面緊跟一個命令動詞,之后是任意參數(shù)。參數(shù)與命令動詞以及其他參數(shù)之間可以用空白符隔開,如果參數(shù)里面包含空白符,該參數(shù)必須用單引號括起,如果參數(shù)內(nèi)包含單引號,則需要用反斜杠進行轉(zhuǎn)義,此外單引號內(nèi)的參數(shù)還支持類似C語言printf函數(shù)所支持的轉(zhuǎn)義關(guān)鍵字,如\t、\n等。

命令 說明
\a 如果目前的表輸出格式是不對齊的,切換成對齊的。如果是對齊的,則切換成不對齊。
\cd [directory] 把當前工作目錄切換到directory。沒有參數(shù)則切換到當前用戶的主目錄。
\C [title]   為查詢結(jié)果添加表頭(title),如果沒有參數(shù)則取消當前的表頭。
\c[dbname[username] ] 連接新的數(shù)據(jù)庫,同時斷開當前連接。如果dbname參數(shù)為-,表示仍然連接當前數(shù)據(jù)庫。如果忽略username,則表示繼續(xù)使用當前的用戶名。
\copy 其參數(shù)類似于SQL copy,功能則幾乎等同于SQL copy,一個重要的差別是該內(nèi)置命令可以將表的內(nèi)容導(dǎo)出到本地,或者是從本地導(dǎo)入到數(shù)據(jù)庫指定的表,而SQL copy則是將表中的數(shù)據(jù)導(dǎo)出到服務(wù)器的某個文件,或者是從服務(wù)器的文件導(dǎo)入到數(shù)據(jù)表。由此可見,SQL copy的效率要優(yōu)于該內(nèi)置命令。
\d [pattern] 顯示和pattern匹配的數(shù)據(jù)庫對象,如表、視圖、索引或者序列。顯示所有列,它們的類型,表空間(如果不是缺省的)和任何特殊屬性。
\db [pattern]   列出所有可用的表空間。如果聲明了pattern, 那么只顯示那些匹配模式的表空間。
\db+ [pattern]   和上一個命令相比,還會新增顯示每個表空間的權(quán)限信息。
\df [pattern]   列出所有可用函數(shù),以及它們的參數(shù)和返回的數(shù)據(jù)類型。如果聲明了pattern,那么只顯示匹配(正則表達式)的函數(shù)。
\df+ [pattern]   和上一個命令相比,還會新增顯示每個函數(shù)的附加信息,包括語言和描述?! ?/td>
\distvS [pattern] 這不是一個單獨命令名稱:字母 i、s、t、v、S 分別代表索引(index)、序列(sequence)、表(table)、視圖(view)和系統(tǒng)表(system table)。你可以以任意順序聲明部分或者所有這些字母獲得這些對象的一個列表。
\dn [pattern]   列出所有可用模式。如果聲明了pattern,那么只列出匹配模式的模式名。
\dn+ [pattern] 和上一個命令相比,還會新增顯示每個對象的權(quán)限和注釋。
\dp [pattern] 生成一列可用的表和它們相關(guān)的權(quán)限。如果聲明了pattern, 那么只列出名字可以匹配模式的表。
\dT [pattern] 列出所有數(shù)據(jù)類型或只顯示那些匹配pattern的。
\du [pattern] 列出所有已配置用戶或者只列出那些匹配pattern的用戶。
\echotext [ ... ] 向標準輸出打印參數(shù),用一個空格分隔并且最后跟著一個新行。如:\echo `date`
\g[{filename ||command}] 把當前的查詢結(jié)果緩沖區(qū)的內(nèi)容發(fā)送給服務(wù)器并且把查詢的輸出存儲到可選的filename或者把輸出定向到一個獨立的在執(zhí)行 command的Unix shell。
\ifilename 從文件filename中讀取并把其內(nèi)容當作從鍵盤輸入的那樣執(zhí)行查詢。
\l 列出服務(wù)器上所有數(shù)據(jù)庫的名字和它們的所有者以及字符集編碼。
\o[{filename ||command}] 把后面的查詢結(jié)果保存到文件filename里或者把后面的查詢結(jié)果定向到一個獨立的shell command。
\p 打印當前查詢緩沖區(qū)到標準輸出。
\q 退出psql程序。
\r 重置(清空)查詢緩沖區(qū)。
\s [filename] 將命令行歷史打印出或是存放到filename。如果省略filename,歷史將輸出到標準輸出。
\t   切換是否輸出列/字段名的信息頭和行記數(shù)腳注。
\w{filename ||command} 將當前查詢緩沖區(qū)輸出到文件filename或者定向到Unix命令command。
\z [pattern] 生成一個帶有訪問權(quán)限列表的數(shù)據(jù)庫中所有表,視圖和序列的列表。如果給出任何pattern,則被當成一個規(guī)則表達式,只顯示匹配的表,視圖和序列。
\!! [command] 返回到一個獨立的Unix shell或者執(zhí)行Unix命令command。參數(shù)不會被進一步解釋,shell將看到全部參數(shù)。

 4. 內(nèi)置命令應(yīng)用示例:

    在psql中,大部分的內(nèi)置命令都比較易于理解,因此這里只是給出幾個我個人認為相對容易混淆的命令。
 

復(fù)制代碼 代碼如下:

    # \c: 其中橫線(-)表示仍然連接當前數(shù)據(jù)庫,myuser是新的用戶名。
    postgres=# \c - myuser
    Password for user myuser:
    postgres=> SELECT user;
     current_user
    --------------
     myuser
    (1 row)
    # 執(zhí)行任意SQL語句。
    postgres=# SELECT * FROM testtable WHERE i = 2;
     i
    ---
     2
    (1 row)
    # \g 命令會將上一個SQL命令的結(jié)果輸出到指定文件。
    postgres=# \g my_file_for_command_g
    postgres=# \!! cat my_file_for_command_g
     i
    ---
     2
    (1 row)
    # \g 命令會將上一個SQL命令的結(jié)果從管道輸出到指定的Shell命令,如cat。
    postgres=# \g | cat
     i
    ---
     2
    (1 row)
    # \p 打印上一個SQL命令。
    postgres=# \p
    SELECT * FROM testtable WHERE i = 2;
    # \w 將上一個SQL命令輸出到指定的文件。
    postgres=# \w my_file_for_option_w
    postgres=# \!! cat my_file_for_option_w
    SELECT * FROM testtable WHERE i = 2;
    # \o 和\g相反,該命令會將后面psql命令的輸出結(jié)果輸出到指定的文件,直到遇到下一個獨立的\o,
    # 此后的命令結(jié)果將不再輸出到該文件。
    postgres=# \o my_file_for_option_o
    postgres=# SELECT * FROM testtable WHERE i = 1;
    # 終止后面的命令結(jié)果也輸出到my_file_for_option_o文件中。
    postgres=# \o
    postgres=# \!! cat my_file_for_option_o
     i
    ---
     1
    (1 row)
 

您可能感興趣的文章:
  • PostgreSQL教程(十七):客戶端命令(1)
  • PostgreSql新手必學入門命令小結(jié)
  • 15個postgresql數(shù)據(jù)庫實用命令分享
  • PostgreSQL copy 命令教程詳解

標簽:蘭州 仙桃 湖南 湘潭 銅川 黃山 衡水 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標題《PostgreSQL教程(十八):客戶端命令(2)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    南木林县| 南丰县| 石首市| 南陵县| 洛宁县| 和林格尔县| 临邑县| 庄河市| 黔南| 墨竹工卡县| 班玛县| 定南县| 德钦县| 临海市| 周口市| 元氏县| 黑河市| 松原市| 上虞市| 平邑县| 顺义区| 嘉义市| 拉萨市| 贵港市| 天门市| 南丰县| 安福县| 富川| 金沙县| 柳江县| 灌南县| 广西| 萍乡市| 大荔县| 临沂市| 马尔康县| 开原市| 安丘市| 咸丰县| 陆川县| 商丘市|