↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本。 PostgreSQL 6.4 已结束支持。 请参阅 当前版本手册.

CREATE DATABASE

CREATE DATABASE — 创建一个新数据库

大纲

CREATE DATABASE name [ WITH LOCATION = 'dbpath' ]
  

输入

name

要创建的数据库的名称。

dbpath

备选位置可以指定为一个后端服务器已知的环境变量(例如 'PGDATA2'),或者一个绝对路径名(例如 '/usr/local/pgsql/data')。无论哪种情况,该位置都必须由 initlocation 预先配置。

输出

→ CREATEDB

命令成功完成时返回的消息。

→ WARN: createdb: database "name" already exists.

如果所指定的 database 已经存在,就会出现这个错误。

→ ERROR: Unable to create database directory directory

创建所需的目录时出了问题;这个操作将需要 postgres 用户在指定位置上的权限。

描述

CREATE DATABASE 创建一个新的 Postgres 数据库。创建者成为新数据库的管理员。

注意

CREATE DATABASE 是一种 Postgres 语言扩展。

使用 DROP DATABASE 删除一个数据库。

用法

创建一个新的数据库:

olly=> create database lusiadas;
  

要在备选区域 ~/private_db 中创建一个新数据库:

$ mkdir private_db
$ initlocation ~/private_db
Creating Postgres database system directory /home/olly/private_db/base

$ psql olly
Welcome to the POSTGRESQL interactive sql monitor:
  Please read the file COPYRIGHT for copyright terms of POSTGRESQL

   type \? for help on slash commands
   type \q to quit
   type \g or terminate with semicolon to execute query
 You are currently connected to the database: template1

olly=> create database elsewhere with location = '/home/olly/private_db';
    CREATEDB
  

缺陷

使用以绝对路径名指定的备选数据库位置会涉及安全和数据完整性问题,默认情况下,只有后端已知的环境变量才能被指定为备选位置。更多信息见《管理员指南》。

兼容性

SQL92

SQL92 中没有 CREATE DATABASE 语句。

标准 SQL 中等价的命令是 CREATE SCHEMA。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.