CREATE DATABASE

CREATE DATABASE

创建一个新的数据库。

概要

CREATE DATABASE name [ [WITH] [OWNER [=] dbowner]
                     [TEMPLATE [=] template]
                     [ENCODING [=] encoding]
                     [TABLESPACE [=] tablespace]
                     [CONNECTION LIMIT [=] connlimit ] ]

描述

CREATE DATABASE 创建一个新的数据库。 要 创建一个新的数据库, 用户必须是超级用户或者有 CREATEDB 特权。

默认情况下,创建者即为新数据库的所有者。超级用户 可以使用其他用户创建数据库通过 OWNER 子句。 他们甚至可以创建没有特殊权限的用户拥有的数据库。 有 CREATEDB 特权的非超级用户只能创建自己拥有的数据库。

默认情况下,将通过克隆标准系统数据库创建新数据库 template1. 可以通过写指定不同的模板 TEMPLATE 名称. 特别是, 通过写 TEMPLATE template0, 用户可以创建一个仅包含由Greenplum Database预定义的标准对象的干净数据库。 将对用户希望避免复制内容添加到 template1的任何安装对象中非常有用。

参数

name
要创建的数据库的名称。
dbowner
将拥有新数据库的数据库用户的名称,或DEFAULT 使用默认的所有者(执行该命令的用户)。
默认
要创建新数据库的模板的名称,或 默认 使用默认模板 (template1).
encoding
在新数据库中使用的字符集编码。指定一个字符串常量(例如 'SQL_ASCII'), 一个整数编码号,或 DEFAULT 使用默认编码。 有关详细信息,, 请参阅 字符集支持.
tablespace
将与新数据库相关联的表空间的名称, 或 DEFAULT 使用模板数据库的表空间。 此表空间将是用于在此数据库中创建的对象的默认表空间。
connlimit
最大并发连接数可以使用。缺省值-1表示没有限制。

注解

CREATE DATABASE 不能在事务块内执行。

当用户通过指定其名称作为模板来复制数据库时,在复制数据库时,不会将其他会话连接到模板数据库。 到模板数据库的新连接被锁定,直到CREATE DATABASE 完成。

CONNECTION LIMIT没有对超级用户执行。

示例

要创建一个新的数据库:

CREATE DATABASE gpdb;

创建数据库 sales 由用户 salesapp拥有,默认表空间为 salesspace:

CREATE DATABASE sales OWNER salesapp TABLESPACE salesspace;

创建数据库 music 支持ISO-8859-1字符集:

CREATE DATABASE music ENCODING 'LATIN1';

兼容性

SQL标准中没有CREATE DATABASE语句。 数据库等同于目录,其创建是由实现定义的。