CREATE DATABASE 是用于创建数据库的 DDL 命令。
CREATE DATABASE 一直存在于 PostgreSQL 中。
变更历史
- PostgreSQL 18
- 如果
STRATEGY选项被设置为WAL_LOG,将使用读取流(提交 8720a15e) - 如果
STRATEGY选项被设置为FILE_COPY,将使用file_copy_method中指定的方法来复制文件(提交 f78ca6f3)
- 如果
- PostgreSQL 16
- 添加了
ICU_RULES选项(提交 30a53b79)
- 添加了
- PostgreSQL 15
- PostgreSQL 13
- 添加了
LOCALE选项,合并了现有的LC_COLLATE和LC_CTYPE选项(提交 06140c20)
- 添加了
- PostgreSQL 9.5
- PostgreSQL 9.0
- PostgreSQL 8.1
- 添加了
CONNECTION LIMIT选项(提交 d42cf5a4)
- 添加了
- PostgreSQL 8.0
- PostgreSQL 7.3
- 添加了
OWNER选项,用于在创建数据库时指定数据库所有者(提交 a833c441)
- 添加了
- PostgreSQL 7.1
- 添加了
WITH TEMPLATE选项,用于选择一个模板数据库,作为默认的 "template0" 的替代(提交 2cf48ca0)
- 添加了
示例
CREATE DATABASE 的基本用法示例
postgres=# CREATE DATABASE foo; CREATE DATABASE postgres=# \l+ foo List of databases -[ RECORD 1 ]-----+------------ Name | foo Owner | postgres Encoding | UTF8 Collate | en_GB.UTF-8 Ctype | en_GB.UTF-8 Access privileges | Size | 7393 kB Tablespace | pg_default Description |
使用不同的区域设置创建数据库
postgres=# CREATE DATABASE locale_test
ENCODING latin1
LOCALE 'de_DE.iso88591'
TEMPLATE template0;
CREATE DATABASE
postgres=# \l+ locale_test
List of databases
-[ RECORD 1 ]-----+---------------
Name | locale_test
Owner | postgres
Encoding | LATIN1
Collate | de_DE.iso88591
Ctype | de_DE.iso88591
Access privileges |
Size | 7393 kB
Tablespace | pg_default
Description |
参考资料
- PostgreSQL 文档: CREATE DATABASE
- PostgreSQL 文档: 创建数据库
