创建数据库
创建一个新的数据库。缺省情况下新数据库将通过复制标准系统数据库template0来创建,且仅支持使用template0来创建。
注意事项
- 只有拥有CREATEDB权限的用户才可以创建新数据库,系统管理员默认拥有此权限。
- 不能在事务块中执行创建数据库语句。
- 在创建数据库过程中,若出现类似“could not initialize database directory”的错误提示,可能是由于文件系统上数据目录的权限不足或磁盘满等原因引起。
语法格式
CREATE DATABASE database_name
[ [ WITH ] { [ OWNER [=] user_name ] |
[ TEMPLATE [=] template ] |
[ ENCODING [=] encoding ] |
[ LC_COLLATE [=] lc_collate ] |
[ LC_CTYPE [=] lc_ctype ] |
[ DBCOMPATIBILITY [=] compatibilty_type ] |
[ TABLESPACE [=] tablespace_name ] |
[ CONNECTION LIMIT [=] connlimit ]}[...] ];
示例
创建dbuser和test用户
CREATE USER dbuser PASSWORD 'test@123'; CREATE USER test PASSWORD 'test@123';
创建一个UTF8编码的数据库testdb1
CREATE DATABASE testdb1 ENCODING 'UTF8';
创建数据库testdb2,并指定所有者为dbuser
CREATE DATABASE testdb2 OWNER dbuser;
用模板template0创建数据库testdb3,并指定所有者为dbuser
CREATE DATABASE testdb3 OWNER dbuser TEMPLATE template0;
设置testdb1数据库的连接数为500
ALTER DATABASE testdb1 CONNECTION LIMIT= 500;
将testdb1名称改为testdb4
ALTER DATABASE testdb1 RENAME TO testdb4;
将数据库testdb2的所属者改为test
ALTER DATABASE testdb2 OWNER TO test;
设置testdb3的表空间为PG_DEFAULT
ALTER DATABASE testdb3 SET TABLESPACE PG_DEFAULT;
删除数据库
DROP DATABASE testdb2; DROP DATABASE testdb3;