文章目录
- 1. CREATE DATABASE 语句
-
- 1.1 CREATE DATABASE 语法
- 1.2 CREATE DATABASE 调用栈
- 2. CREATE DATABASE 内核实现
-
- 2.1 从 CreatedbStmt 节点树 提取 options
- 2.2 获取 datdba(proposed owner) OID
- 2.3 当前用户具有 create DB 权限?
- 2.4 获取 database template
1. CREATE DATABASE 语句
CREATE DATABASE
用于创建一个新的 PostgreSQL 数据库。
要创建数据库,您必须是超级用户(superuser
)或拥有特殊权限 CREATEDB
。参阅 CREATE ROLE。
默认情况下,新数据库将通过克隆标准系统数据库 template1
来创建。您可以通过写入“TEMPLATE name
” 来指定不同的模板。特别是,通过写入“TEMPLATE template0
”,您可以创建一个原始数据库(其中不存在任何用户定义的对象,且系统对象未被更改),其中仅包含您的 PostgreSQL 版本预定义的标准对象。如果您希望避免复制可能已添加到 template1
的任何安装本地对象,这将很有用。
1.1 CREATE DATABASE 语法
Postgres支持的 CREATE DATABASE 语法如下:
- postgres=#
\h CREATE DATABASE
- Command: CREATE DATABASE