pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
CREATE DATABASE — 创建一个新数据库
CREATE DATABASEname[ WITH LOCATION = 'dbpath' ]
name要创建的数据库的名称。
dbpath在文件系统中存储新数据库的一个备选位置。 注意事项见下文。
CREATE DATABASE命令成功完成时返回的消息。
ERROR: user 'username' is not allowed to create/drop databases你必须拥有特殊的 CREATEDB 权限才能创建数据库。 见 CREATE USER 。
ERROR: createdb: database "name" already exists如果已经存在一个具有所指定 name 的数据库,就会出现这个错误。
ERROR: Single quotes are not allowed in database names.ERROR: Single quotes are not allowed in database paths.数据库 name 和 dbpath 都不能包含 单引号。这是为了确保创建数据库目录的 shell 命令能够安全执行而要求的。
ERROR: The path 'xxx' is invalid.所指定的 dbpath 的展开 (如何展开见下文)失败了。检查你输入的路径,或者确保你所 引用的环境变量确实存在。
ERROR: createdb: May not be called in a transaction block.如果有一个显式的事务块正在进行中,你就不能调用 CREATE DATABASE。必须先完成该事务。
ERROR: Unable to create database directory 'path'.ERROR: Could not initialize database directory.这些错误很可能与数据目录上的权限不足、磁盘已满或其他文件系统问题有关。运行 数据库服务器的用户必须能访问该位置。
CREATE DATABASE 创建一个新的 Postgres 数据库。 创建者成为新数据库的拥有者。
可以指定一个备选位置,例如, 把数据库存储在另一块磁盘上。 该路径必须已经用 initlocation 命令准备好。
如果路径包含斜杠,其前导部分会被解释为一个环境变量,服务器进程 必须知道这个变量。这样数据库管理员就可以 控制可以在哪些位置创建数据库。 (惯例的选择例如 'PGDATA2'。) 如果服务器编译时带 ALLOW_ABSOLUTE_DBPATHS (默认不带),那么以 前导斜杠 标识的绝对路径名(例如 '/usr/local/pgsql/data') 也是允许的。
CREATE DATABASE 是一种 Postgres 语言扩展。
使用 DROP DATABASE 删除一个数据库。
程序 createdb 是 围绕这个命令的 shell 脚本包装,为方便起见提供。
使用以绝对路径名指定的备选数据库位置会涉及 安全和数据完整性问题,默认情况下, 只有后端已知的环境变量才能被 指定为备选位置。 更多信息见《管理员指南》。
创建一个新的数据库:
olly=>create database lusiadas;
要在备选区域 ~/private_db 中创建一个新数据库:
$mkdir private_db$initlocation ~/private_dbCreating Postgres database system directory /home/olly/private_db/base$psql ollyWelcome 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 quitolly=>CREATE DATABASE elsewhere WITH LOCATION = '/home/olly/private_db';CREATE DATABASE
SQL92 中没有 CREATE DATABASE 语句。 数据库等价于目录,其创建是 实现定义的。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。