请参考 快速安装指引一章。
你可使用使用者友善的 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’和其他说明书。