createdb

Name

createdb -- 创建一个新的 PostgreSQL 数据库

Synopsis

createdb [option...] [dbname] [description]

描述

createdb 创建一个新的 PostgreSQL 数据库。

通常,执行这个命令的数据库用户成为新数据库的所有者。 不过,如果执行用户拥有合适的权限,那么他可以通过 -O 指定合适的用户。

createdb 是一个 SQL 命令 CREATE DATABASE 的封装。 因此,用哪种方法创建数据库都没什么特别的。

选项

createdb 接受下列命令行参数:

dbname

声明要创建的数据库名。该名称应该在本节点的 PostgreSQL 所有数据库里面是唯一的。 缺省是与当前系统用户同名。

description

这个选项声明一个与新创建的数据库相关的注解。

-D datadir
--location datadir

声明变更了的数据库集群(节点)的位置。 又见 initlocation

-e
--echo

回显 createdb 生成的命令并且把它发送到服务器。

-E encoding
--encoding encoding

声明用于此数据库的字符编码方式。

-q
--quiet

不显示响应。

-O owner
--owner owner

指定将拥有新数据库的数据库用户。

-T template
--template template

声明创建此数据库的模板数据库。

选项 -h-p-U-W-e 是以文本形式传递给 psql。 选项-O-D-T-E 转换为下层的 SQL 命令 CREATE DATABASE 的选项;参考该条目获取更多相关信息。

createdb 还接受下列命令行参数作为连接参数:

-h host
--host host

声明运行服务器的主机名。 如果数值以斜杠开头,则它被用做到 Unix 域套接字的路径。

-p port
--port port

声明服务器 侦听的等待连接的互联网 TCP 端口或一个本地 Unix 域套接字文件扩展(描述符)。

-U username
--username username

进行联接的用户名。

-W
--password

强制口令提示符。

环境

PGDATABASE

如果设置了,那么就是要创建的数据库名字,除非在命令行上覆盖了。

PGHOST
PGPORT
PGUSER

缺省连接参数。PGUSER 还决定了要创建的数据库名字-- 如果我们没有在命令行上声明数据库名字,也没有用 PGDATABASE 声明的话。

诊断

如果出现错误,将会显示后端错误信息。参阅 CREATE DATABASEpsql 获取可能信息描述。 数据库服务器必须在目标服务器上运行。同样,前端库 libpq 使用的缺省连接设置和环境变量都将适用。

例子

用缺省数据库服务器创建一个数据库 demo

$ createdb demo
CREATE DATABASE

响应信息与运行 CREATE DATABASE SQL 命令时一样。

用在主机eden上的服务器创建数据库 demo, 端口是 5000,使用 LATIN1 编码方式,并且显示执行的命令:

$ createdb -p 5000 -h eden -E LATIN1 -e demo
CREATE DATABASE "demo" WITH ENCODING = 'LATIN1'
CREATE DATABASE

又见

dropdb, CREATE DATABASE