createdb

Name

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

Synopsis

createdb [options...] [dbname] [description]

描述

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

通常, 执行此命令的用户成为该数据库的管理员。 但是,如果执行命令的用户有合适的权限,那么我们可以使用 -O 选项指定另外一个所有者。

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

createdb 是一个 shell 脚本,通过 PostgreSQL 交互终端 psql封装了 SQL 命令 CREATE DATABASE。 因此,用哪种方法创建数据库都没什么特别的。 这意味着 psql 必须能被脚本找到并且有一个数据库服务器在目标主机上运行。同样,任何 psqllibpq 前端库可获得的缺省 设置和环境变量都将生效。

选项

createdb 接受下列命令行参数:

dbname

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

description

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

-D datadir
--location datadir

声明变更了的数据库安装(节点)的位置. 又见 initlocation

-E encoding
--encoding encoding

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

-e
--echo

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

-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/IP 端口或一个本地 Unix 域套接字文件扩展(描述符).

-U username
--username username

进行联接的用户名。

-W
--password

强制口令提示符。

诊断

CREATE DATABASE

成功创建数据库。

createdb: Database creation failed.

(什么都可能)

createdb: Comment creation failed. (Database was created.)

不能给该数据库创建注解/描述。数据库本身已经创建成功了。 你可以稍后用SQL 命令 SQL 命令 COMMENT ON DATABASE 创建评注.

如果出现错误,将会显示后端错误信息。参阅 CREATE DATABASEpsql 获取可能信息描述。

环境

PGDATABASE

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

PGHOST
PGPORT
PGUSER

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

例子

用缺省数据库服务器创建一个数据库 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