|
CREATE DATABASESynopsisCREATE DATABASE name [ WITH [ LOCATION = ' dbpath ' ] [ TEMPLATE = template ] [ ENCODING = encoding ] ] 输入
输出
描述CREATE DATABASE 创建一个新的 PostgreSQL 数据库.创建者成为新数据库的管理员. 可以声明一个可选的数据库位置,例如,在另一块硬盘上存放数据库。 该路径必须是事先用 initlocation 命令准备好了的. 如果路径名不包含斜杠,那么它被解释成一个环境变量, 该变量必须为服务进程所知。这样数据库管理员 可以对能够在那里创建数据库进行控制。(例如,一个用户化的选择是 ' PGDATA2 '。)如果服务器带着 ALLOW_ABSOLUTE_DBPATHS (缺省时没有)选项编译, 那么也允许使用以斜杠开头为标识的绝对路径(例如, ' ' /usr/local/pgsql/data ')。 缺省时,新数据库将通过克隆标准系统数据库 template1 来创建.不同的模板可以用 TEMPLATE = name 来写.尤其是,如果你用 TEMPLATE = template0 , 你可以创建一个很纯净的数据库,只包括你的版本的 PostgreSQL 预定义的 标准对象.这个方法可以避免把任何已经加入到 template1 里的本地安装对象拷贝到新数据库. 可选的编码参数允许选择数据库编码, 如果你的服务器是带着多字节编码支持编译的话. 如果没有声明,缺省是所选用的模板数据库用的编码. 可选参数可以以任意顺序写,而不仅是上面显示的顺序. 注意CREATE DATABASE 是 PostgreSQL 语言的扩展. 使用 DROP DATABASE 删除一个数据库. 程序 createdb 是 是这个命令的 shell 脚本的封装,提供来方便使用。 在用绝对路径指定的可选数据库位置时, 有一些安全和数据完整性的问题, 而且缺省时只有后端识别的环境变量可以声明为可选的路径. 参考管理员手册获取更多的信息. 尽管我们可以通过把某数据库名声明为模板从非 template1 数据库 拷贝数据库,但是这(还)不是一个通用的 COPY DATABASE 功能. 因此,我们建议当做模板使用的数据库都应该是以只读方式对待的. 参阅 管理员手册 获取更多信息. 用法创建一个新的数据库: olly=> create database lusiadas;
在另一个地方 ~/private_db 创建新数据库: $ mkdir private_db $ initlocation ~/private_db The location will be initialized with username "olly". This user will own all the files and must also own the server process. Creating directory /home/olly/private_db Creating directory /home/olly/private_db/base initlocation is complete. $ psql olly Welcome to psql, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit olly=> CREATE DATABASE elsewhere WITH LOCATION = '/home/olly/private_db'; CREATE DATABASE
|