Postgresql 中文操作指南

createdb

createdb — 创建新的 PostgreSQL 数据库

Synopsis

createdb [ connection-option …​] [ option …​] [ dbname [ description ]]

Description

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

通常情况下,执行该命令的数据库用户将变为新数据库的拥有者。不过,如果执行的用户具有适当的权限,可以通过 -O 选项指定一个不同的所有者。

createdb 是 SQL 命令 CREATE DATABASE 的一个包装器。通过该工具创建数据库与通过其他方法访问服务器创建数据库之间没有实际差异。

Options

createdb 接受以下命令行参数:

  • dbname

    • 指定要创建的数据库的名称。该名称必须在该群集中的所有 PostgreSQL 数据库中唯一。默认操作是创建一个与当前系统用户同名的数据库。

  • description

    • 指定与新创建的数据库关联的注释。

  • -D _tablespace—​tablespace=_tablespace

    • 指定数据库的默认表空间。(此名称作为双引号标识符处理。)

  • -e_—​echo_

    • 显示 createdb 生成并发送至服务器的命令。

  • -E _encoding—​encoding=_encoding

    • 指定要在此数据库中使用的字符编码方案。由 PostgreSQL 服务器支持的字符集在 Section 24.3.1 中有所描述。

  • -l _locale—​locale=_locale

    • 指定要在此数据库中使用的区域设置。这相当于将 —​lc-collate—​lc-ctype—​icu-locale 指定为相同的值。某些区域设置仅对 ICU 有效,并且必须使用 —​icu-locale 进行设置。

  • —​lc-collate=_locale_

    • 指定要在此数据库中使用的 LC_COLLATE 设置。

  • —​lc-ctype=_locale_

    • 指定要在此数据库中使用的 LC_CTYPE 设置。

  • —​icu-locale=_locale_

    • 如果选择了 ICU 区域设置提供程序,则指定要在此数据库中使用的 ICU 区域设置 ID。

  • —​icu-rules=_rules_

    • 指定其他排序规则以自定义此数据库的默认排序规则的行为。这仅受 ICU 支持。

  • —​locale-provider={_libc|icu}_

    • 指定数据库默认排序规则的区域设置提供程序。

  • -O _owner—​owner=_owner

    • 指定新数据库的所有者数据库用户。(此名称作为双引号标识符处理。)

  • -S _strategy—​strategy=_strategy

  • -T _template—​template=_template

    • 指定构建此数据库的模板数据库。(此名称作为双引号标识符处理。)

  • -V_—​version_

    • 打印 createdb 版本并退出。

  • -?_—​help_

    • 显示有关 createdb 命令行参数的帮助,并退出。

选项 -D-l-E-O-T 对应于底层 SQL 命令 CREATE DATABASE 的选项;请参阅此处以获取更多相关信息。

createdb 还针对连接参数接受以下命令行参数:

  • -h _host—​host=_host

    • 指定服务器正在运行的计算机的主机名。如果该值以斜杠开头,则将其用作 Unix 域套接字的目录。

  • -p _port—​port=_port

    • 指定服务器侦听连接的 TCP 端口或本地 Unix 域套接字文件扩展名。

  • -U _username—​username=_username

    • 连接时的用户名。

  • -w_—​no-password_

    • 永不发出密码提示。如果服务器需要密码验证但其他方法(如 .pgpass 文件)无法提供密码,连接尝试将失败。此选项可在无人执行密码输入的批处理作业和脚本中使用。

  • -W_—​password_

    • 强制 createdb 在连接到数据库前提示输入密码。

    • 此选项并非始终必要,因为如果服务器要求密码身份验证,则 createdb 将自动提示输入密码。但是,createdb 会浪费一次连接尝试来找出服务器是否需要密码。在某些情况下,值得键入 -W 以避免额外的连接尝试。

  • —​maintenance-db=_dbname_

    • 指定在创建新数据库时用于连接的数据库名称。如果未指定,将使用 postgres 数据库;如果该数据库不存在(或该数据库是当前创建的新数据库的名称),将使用 template1 。它可以是 connection string 。如果是这种情况,连接字符串参数将覆盖所有冲突的命令行选项。

Environment

  • PGDATABASE

    • 如果已设置,则需要创建的数据库的名称,除非通过命令行将其覆盖。

  • PGHOST_PGPORT_PGUSER

    • 默认连接参数。 PGUSER 还确定了需要创建的数据库的名称,如果它未在命令行或通过 PGDATABASE 指定。

  • PG_COLOR

    • 指定是否在诊断消息中使用颜色。可能的值为 alwaysautonever

此实用程序与大多数其他 PostgreSQL 实用程序一样,还使用 libpq 支持的环境变量(请参阅 Section 34.15 )。

Diagnostics

如果遇到困难,请参阅 CREATE DATABASEpsql 以了解有关潜在问题和错误消息的讨论。数据库服务器必须在目标主机上运行。另外,libpq 前端库使用的任何默认连接设置和环境变量都将生效。

Examples

使用默认数据库服务器创建数据库 demo

$ createdb demo

要使用主机 eden 上的服务器、端口 5000、 template0 模板数据库创建数据库 demo ,以下是命令行命令和底层 SQL 命令:

$ createdb -p 5000 -h eden -T template0 -e demo
CREATE DATABASE demo TEMPLATE template0;

See Also