合 PG命令之CREATE DATABASE、ALTER DATABASE和DROP DATABASE
Tags: PG命令介绍DROP DATABASEALTER DATABASECREATE DATABASE
CREATE DATABASE
CREATE DATABASE — 创建一个新数据库
大纲
1 2 3 4 5 6 7 8 9 10 11 | CREATE DATABASE name [ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LOCALE [=] locale ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace_name ] [ ALLOW_CONNECTIONS [=] allowconn ] [ CONNECTION LIMIT [=] connlimit ] [ IS_TEMPLATE [=] istemplate ] ] |
描述
CREATE DATABASE
创建一个新的PostgreSQL数据库。
要创建一个数据库,你必须是一个超级用户或者具有特殊的CREATEDB
特权。见CREATE ROLE。
默认情况下,新数据库将通过克隆标准系统数据库template1
被创建。可以通过写TEMPLATE *
name*
指定一个不同的模板。特别地,通过写TEMPLATE template0
你可以创建一个原始的数据库(其中没有用户定义的对象存在并且系统对象没有被更改),它将只包含你的PostgreSQL版本所预定义的标准对象。如果你希望避免拷贝任何可能被加入到template1
中的本地安装对象,这将有所帮助。
参数
name
要创建的数据库名。
user_name
将拥有新数据库的用户的角色名,或者用
DEFAULT
来使用默认值(即,执行该命令的用户)。要创建一个被另一个角色拥有的数据库,你必须是该角色的一个直接或间接成员,或者是一个超级用户。template
要从其创建新数据库的模板名称,或者用
DEFAULT
来使用默认模板(template1
)。encoding
要在新数据库中使用的字符集编码。指定一个字符串常量(例如
'SQL_ASCII'
),或者一个整数编码编号,或者DEFAULT
来使用默认的编码(即,模板数据库的编码)。PostgreSQL服务器所支持的字符集在第 23.3.1 节中描述。附加限制见下文。locale
这是一个同时设置
LC_COLLATE
和LC_CTYPE
的快捷方式。 如果指定此参数,您不能指定这些参数中的任何一个。提示其他语言环境设置 lc_messages, lc_monetary, lc_numeric, and lc_time不是每个数据库固定的, 也不是由该命令设置的。 如果要将它们设置为特定数据库的默认值,则可以使用ALTER DATABASE... SET
.lc_collate
要在新数据库中使用的排序规则顺序(
LC_COLLATE
)。这会影响应用到字符串的排序顺序,例如在带 ORDER BY 的查询中,以及文本列上索引所使用的顺序。默认是使用模板数据库的排序规则顺序。附加限制见下文。lc_ctype
要在新数据库中使用的字符分类(
LC_CTYPE
)。这会影响字符的类别,如小写、大写和数字。默认是使用模板数据库的字符分类。附加限制见下文。tablespace_name
将与新数据库相关联的表空间名称,或者
DEFAULT
来使用模板数据库的表空间。这个表空间将是在这个数据库中创建的对象的表空间。详见CREATE TABLESPACE。allowconn
如果为假,则没有人能连接到这个数据库。默认为真,表示允许连接(除了 被其他机制约束以外,例如
GRANT
/REVOKE CONNECT
)。本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
可以在事务块中修改数据库,但是不能在事务块中删除数据库!