PostgreSQL
上一页   下一页

CREATE DATABASE

名称

CREATE DATABASE — 创建新数据库

CREATE DATABASE name [ 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
如果声明的数据库 database 已经存在返回的信息.
ERROR: Single quotes are not allowed in database names., ERROR: Single quotes are not allowed in database paths.
数据库 namedbpath 不能包含单引号。这样要求是为了创建数据库目录的 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 'xxx'., ERROR: Could not initialize database directory.
这种情况最有可能是对数据目录权限不够,磁盘已满或其他文件系统问题。数据库服务器运行的机器上的用户必须能反问该路径。

描述

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

可以声明一个可选的数据库位置,例如,为了在另一块硬盘上存放数据库。该路径必须是事先用 initlocation 准备好了的.

如果路径包含斜杠,那么(斜杠)前面的部分被解释成一个环境变量,该变量必须为服务进程所知。这样数据库管理员可以对能够在那里创建数据库进行控制。(例如,一个用户化的选择是 'PGDATA2'。)如果服务器被编译成带有 ALLOW_ABSOLUTE_DBPATHS (缺省时没有)选项,以斜杠开头为标识的绝对路径(例如, '/usr/local/pgsql/data')同样也允许。

注意

CREATE DATABASE 是 Postgres 语言的扩展.

使用 DROP DATABASE t删除一个数据库.

程序 createdb 是这个命令的 shell 脚本的封装,提供来方便使用。

在用绝对路径指定数据库位置时,有一些安全和数据完整性的问题,而且缺省时只有后端识别的环境变量可以声明为可选的路径.参考管理员手册获取更多的信息.

用法

创建一个新的数据库:

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 psql, the PostgreSQL interactive terminal.
(Please type \copyright to see the distribution terms of PostgreSQL.)
 
Type \h for help with SQL commands,
     \? for help on internal slash commands,
     \q to quit,
     \g or terminate with semicolon to execute query.
olly=> CREATE DATABASE elsewhere WITH LOCATION = '/home/olly/private_db';
CREATE DATABASE
   

兼容性

SQL92

在 SQL92 里没有 CREATE DATABASE 语句.标准 SQL 里等同的命令是 CREATE SCHEMA.


上一页 首页 下一页
CREATE AGGREGATE 开头 CREATE FUNCTION