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