請參考 快速安裝指引一章。
你可使用使用者友善的 GUI,名為‘pgaccess’來建立和丟棄資料庫,也可用指令列‘psql’工具。
如你以 root 身份登入,變身為用者‘postgres’︰ # xhost + (讓 pgaccess 使用顯示裝置) # su - postgres bash$ man createdb bash$ createdb mydatabase bash$ man psql bash$ psql mydatabase …在 psql 按上 / 下箭咀來編輯歷史紀錄或用 \s bash$ export DISPLAY=<主機名>:0.0 bash$ man pgaccess bash$ pgaccess mydatabase
要丟棄資料庫的話︰
bash$ man dropdb bash$ man destroydb (在較舊版本的 pgsql 中使用) bash$ dropdb <資料庫名稱>
> drop database <資料庫名稱>
要建立新用戶,以 unix 用戶‘postres’簽入,你可用簡單易用的 GUI 工具‘pgaccess’來增減用戶。
bash$ man pgaccess bash$ pgaccess <資料庫名稱>
你也可用指令行命令稿 (script)。名為‘createuser’的命令稿啟動 psql。
bash$ man createuser bash$ createuser <用戶名稱> bash$ createuser -h host -p port -i userid <用戶名稱>
要丟棄一個 postgres 用戶,使用命令稿‘destroyuser’。
bash$ man dropuser bash$ man destroyuser (在較舊版本的 pgsql 中使用) bash$ destroyuser
目前沒有簡單的介面可用來設定用戶群組。你要自行在 pg_group 表格中插入或更新紀錄。如︰
bash$ su - postgres bash$ psql <資料庫名稱> …在 psql 按上 / 下箭咀來編輯歷史紀錄或用 \s psql=> insert into pg_group (groname, grosysid, grolist) psql=> values ('posthackers', '1234', '{5443, 8261}' ); INSERT 58224 psql=> grant insert on foo to group posthackers; CHANGE psql=>
grosysid 群組代碼。這是一個 int4,每個群組都要獨一無二。
grolist 屬於此群組的 pg_user 代碼名單。是一個 int4[]。
要刪除群組︰
bash$ su - postgres bash$ psql <資料庫名稱> …在 psql 按上 / 下箭咀來編輯歷史紀錄或用 \s psql=> delete from pg_group where groname = 'posthackers';
你可使用使用者友善的 GUI,名為‘pgaccess’,或指令列‘psql’工具來建立、編輯和丟棄資料庫表格。
bash$ man pgaccess bash$ pgaccess <資料庫名稱>
bash$ man psql bash$ psql <資料庫名稱> …在 psql 按上 / 下箭咀來編輯歷史紀錄或用 \s
你可使用使用者友善的 GUI,名為‘pgaccess’,或指令列‘psql’工具來建立、 編輯和丟棄資料庫表格中的紀錄。
bash$ man pgaccess bash$ pgaccess <資料庫名稱>
bash$ man psql bash$ psql <資料庫名稱> …在 psql 按上 / 下箭咀來編輯歷史紀錄或用 \s
你可使用使用者友善的 GUI,名為‘pgaccess’,或指令列‘psql’工具來改變目前的資料庫。
bash$ man pgaccess bash$ pgaccess <資料庫名稱>
bash$ man psql bash$ psql <資料庫名稱> …在 psql 按上 / 下箭咀來編輯歷史紀錄或用 \s psql=> connect <資料庫名稱> <user>
PostgreSQL 提供了兩個工具來備份你的系統︰pg_dump 備份一個資料庫,pg_dumpall 一次過備份所有資料庫。
bash$ su - postgres bash$ man pd_dump bash$ pd_dump <資料庫名稱> > database_name.pgdump
bash$ cat database_name.pgdump | psql <資料庫名稱>
警告︰每個資料庫都要定時備份。因為 PostgreSQL 自行管理它在檔案系統中的檔案,所以不要倚賴系統備份來作資料庫備份。 沒有人能保證那些檔案在還原後會處於一個可用而一致的狀態。
備份大型資料庫︰因為 PostreSQL 容許表格大過系統的最大檔案容量,把一個表格輸出為一個檔案會有問題, 因為所產生的檔案可能會超出系統的限制。因為 pg_dump 會寫到 stdout,你可使用標準的 unix 工具來解決這可能的問題︰
使用壓縮了的輸出︰
bash$ pg_dump <資料庫名稱> | gzip > filename.dump.gz
bash$ createdb <資料庫名稱> bash$ gunzip -c filename.dump.gz | psql <資料庫名稱>
bash$ cat filename.dump.gz | gunzip | psql <資料庫名稱>
使用 split︰
bash$ pg_dump <資料庫名稱> | split -b 1m - filename.dump.
bash$ man createdb bash$ createdb <資料庫名稱> bash$ cat filename.dump.* | pgsql <資料庫名稱>
要把所有 PostgreSQL 輸出,使用 pg_dumpall
bash$ man pg_dumpall bash$ pg_dumpall -o > db.out 要重新載入︰ bash$ psql -e template1 < db.out
請參閱 PostgreSQL 保安一節。
你必須知道 PostgreSQL 的線上求助設施,因為它會為你節省很多時間,讓你快速取得資料。
請參閱不同指令,如 createdb、createuser 等等的線上 man pages。
bash$ man createdb
也請參閱 psql 的線上求助訊息,在 psql 提示鍵入 \h
bash$ psql mydatabase psql> \h 提示︰在 psql 按上 / 下箭咀來編輯歷史紀錄或用 \s
要建立激發或內儲程序,先在你使用的資料庫執行‘createlang’命令稿來安裝 ‘plpgsql’。如果你想預設使用它,把它安裝在‘template1’, 因為以後建立的資料庫都是 template1 的仿裝品。參閱‘createlang’網頁或位於 /usr/doc/postgresql-7.0.2/user/index.html 的 User Guide。
bash$ man createlang bash$ createdb mydb bash$ export PGLIB=/usr/lib/pgsql bash$ createlang plpgsql mydb bash$ createlang plpgsql template1
create function tg_pfield_au() returns opaque as ' begin if new.name != old.name then update PSlot set pfname = new.name where pfname = old.name; end if; return new; end; ' language 'plpgsql'; create trigger tg_pfield_au after update on PField for each row execute procedure tg_pfield_au();
create trigger check_fkeys_pkey_exist before insert or update on fkeys for each row execute procedure check_primary_key ('fkey1', 'fkey2', 'pkeys', 'pkey1', 'pkey2');
要顯示資料庫中激發的名單—
bash$ psql mydb psql=> \? psql=> \dS psql=> \d pg_trigger psql=> select tgname from pg_trigger order by tgname;
要顯示資料庫中函數和內儲程序的名單—
bash$ psql mydb psql=> \? psql=> \dS psql=> \d pg_proc psql=> select proname, prosrc from pg_proc order by proname; psql=> \df
有關其他問題,請參閱 PostgreSQL 的說明書,它們的資料十分全面。PostgreSQL 文件已在套件中。請閱讀‘User's Guide’、‘Programmer's Guide’、‘Administrator's Guide’和其他說明書。