创建数据库
最近更新时间: 2024-06-12 15:06:00
要创建一个数据库,你必须是一个超级用户或者具有特殊的CREATEDB特权,默认情况下,新数据库将通过克隆标准系统数据库template1被创建。可以通过写TEMPLATE name指定一个不同的模板。特别地,通过写TEMPLATE template0你可以创建一个干净的数据库,它将只包含你的TDSQL PG所预定义的标准对象。
默认参数创建数据库。
postgres=# create database tbase_db; CREATE DATABASE
指定克隆库。
postgres=# create database tbase_db_template TEMPLATE template0; CREATE DATABASE
指定所有者。
postgres=# create role pgxz with login; CREATE ROLE postgres=# create database tbase_db_owner owner pgxz; CREATE DATABASE postgres=# \l+ tbase_db_owner List of databases Name | Owner | Encoding| Collate | Ctype | Access privileges |Size | Tablespace | Description ----------------+-------+----------+------------+------------+-------------------+-------+------------+------------- tbase_db_owner | pgxz | UTF8 | en_US.utf8 | en_US.utf8 | | 18 MB | pg_default | (1 row)
指定编码。
postgres=# create database tbase_db_encoding ENCODING UTF8; CREATE DATABASE postgres=# \l+ tbase_db_encoding List of databases Name | Owner | Encoding| Collate | Ctype | Access privileges |Size | Tablespace | Description -------------------+-------+----------+------------+------------+-------------------+-------+------------+------------- tbase_db_encoding | tbase | UTF8 | en_US.utf8 | en_US.utf8 | | 18 MB | pg_default | (1 row)
创建gbk编码。
postgres=# CREATE DATABASE db_gbk template template0 encoding = gbk LC_COLLATE = 'zh_CN.gbk' LC_CTYPE = 'zh_CN.gbk'; CREATE DATABASE postgres=# \l+ List of databases Name | Owner | Encoding| Collate | Ctype | Access privileges |Size | Tablespace | Description -----------+-------+----------+------------+------------+-------------------+-------+------------+-------------------------------------------- db_gbk | tbase | GBK | zh_CN.gbk | zh_CN.gbk | | 19 MB | pg_default | postgres | tbase | UTF8 | zh_CN.utf8 | zh_CN.utf8 | | 26 MB | pg_default | default administrative connection database template0 | tbase | UTF8 | zh_CN.utf8 | zh_CN.utf8 | =c/tbase +| 19 MB | pg_default | unmodifiable empty database | | | | | tbase=CTc/tbase | | | template1 | tbase | UTF8 | zh_CN.utf8 | zh_CN.utf8 | =c/tbase +| 24 MB | pg_default | default template for new databases | | | | | tbase=CTc/tbase | | | (4 rows)
创建gb18030编码。
postgres=# create database db_gb18030 template template0 encoding=gb18030 LC_COLLATE = 'zh_CN.gb18030' LC_CTYPE = 'zh_CN.gb18030'; CREATE DATABASE postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ------------+-------+----------+---------------+---------------+------------------- db_gb18030 | tbase | GB18030 | zh_CN.gb18030 | zh_CN.gb18030 | db_gbk | tbase | GBK | zh_CN.gbk | zh_CN.gbk | postgres | tbase | UTF8 | zh_CN.utf8 | zh_CN.utf8 | template0 | tbase | UTF8 | zh_CN.utf8 | zh_CN.utf8 | =c/tbase + | | | | | tbase=CTc/tbase template1 | tbase | UTF8 | zh_CN.utf8 | zh_CN.utf8 | =c/tbase + | | | | | tbase=CTc/tbase test | tbase | UTF8 | zh_CN.utf8 | zh_CN.utf8 | (6 rows) postgres=#
指定排序规则。
postgres=# create database tbase_db_lc_collate lc_collate 'C'; CREATE DATABASE postgres=# \l+ tbase_db_lc_collate List of databases Name | Owner | Encoding| Collate | Ctype | Access privileges |Size | Tablespace | Description ---------------------+-------+----------+---------+------------+-------------------+-------+------------+------------- tbase_db_lc_collate | tbase | UTF8 | C | en_US.utf8 | | 18 MB | pg_default | (1 row)
指定分组规则。
postgres=# create database tbase_db_lc_ctype LC_CTYPE 'C' ; CREATE DATABASE postgres=# \l+ tbase_db_lc_ctype List of databases Name | Owner | Encoding| Collate | Ctype | Access privileges |Size | Tablespace | Description -------------------+-------+----------+------------+-------+-------------------+-------+------------+------------- tbase_db_lc_ctype | tbase | UTF8 | en_US.utf8 | C | | 18 MB | pg_default | (1 row)
配置数据可连接。
postgres=# create database tbase_db_allow_connections ALLOW_CONNECTIONS true; CREATE DATABASE postgres=# select datallowconn from pg_database where datname='tbase_db_allow_connections'; datallowconn -------------- t
配置连接数。
postgres=# create database tbase_db_connlimit CONNECTION LIMIT 100; CREATE DATABASE postgres=# select datconnlimit from pg_database where datname='tbase_db_connlimit'; datconnlimit -------------- 100 (1 row)
配置数据库可以被复制。
postgres=# create database tbase_db_istemplate is_template true; CREATE DATABASE postgres=# select datistemplate from pg_database where datname='tbase_db_istemplate'; datistemplate --------------- t (1 row)
多个参数一起配置。
postgres=# create database tbase_db_mul owner pgxz CONNECTION LIMIT 50 template template0 encoding 'utf8' lc_collate 'C'; CREATE DATABASE