创建数据库

创建一个新的数据库。缺省情况下新数据库将通过复制标准系统数据库template0来创建,且仅支持使用template0来创建。

注意事项

  • 只有拥有CREATEDB权限的用户才可以创建新数据库,系统管理员默认拥有此权限。
  • 不能在事务块中执行创建数据库语句。
  • 在创建数据库过程中,若出现类似“could not initialize database directory”的错误提示,可能是由于文件系统上数据目录的权限不足或磁盘满等原因引起。

语法格式

  1. CREATE DATABASE database_name
  2. [ [ WITH ] { [ OWNER [=] user_name ] |
  3. [ TEMPLATE [=] template ] |
  4. [ ENCODING [=] encoding ] |
  5. [ LC_COLLATE [=] lc_collate ] |
  6. [ LC_CTYPE [=] lc_ctype ] |
  7. [ DBCOMPATIBILITY [=] compatibilty_type ] |
  8. [ TABLESPACE [=] tablespace_name ] |
  9. [ CONNECTION LIMIT [=] connlimit ]}[...] ];

示例

  1. --创建jimtom用户。
  2. postgres=# CREATE USER jim PASSWORD 'Bigdata@123';
  3. postgres=# CREATE USER tom PASSWORD 'Bigdata@123';
  4. --创建一个GBK编码的数据库music(本地环境的编码格式必须也为GBK)。
  5. postgres=# CREATE DATABASE music ENCODING 'GBK' template = template0;
  6. --创建数据库music2,并指定所有者为jim
  7. postgres=# CREATE DATABASE music2 OWNER jim;
  8. --用模板template0创建数据库music3,并指定所有者为jim
  9. postgres=# CREATE DATABASE music3 OWNER jim TEMPLATE template0;
  10. --设置music数据库的连接数为10
  11. postgres=# ALTER DATABASE music CONNECTION LIMIT= 10;
  12. --将music名称改为music4
  13. postgres=# ALTER DATABASE music RENAME TO music4;
  14. --将数据库music2的所属者改为tom
  15. postgres=# ALTER DATABASE music2 OWNER TO tom;
  16. --设置music3的表空间为PG_DEFAULT
  17. postgres=# ALTER DATABASE music3 SET TABLESPACE PG_DEFAULT;
  18. --关闭在数据库music3上缺省的索引扫描。
  19. postgres=# ALTER DATABASE music3 SET enable_indexscan TO off;
  20. --重置enable_indexscan参数。
  21. postgres=# ALTER DATABASE music3 RESET enable_indexscan;
  22. --删除数据库。
  23. postgres=# DROP DATABASE music2;
  24. postgres=# DROP DATABASE music3;
  25. postgres=# DROP DATABASE music4;
  26. --删除jimtom用户。
  27. postgres=# DROP USER jim;
  28. postgres=# DROP USER tom;
  29. --创建兼容TD格式的数据库。
  30. postgres=# CREATE DATABASE td_compatible_db DBCOMPATIBILITY 'C';
  31. --创建兼容ORA格式的数据库。
  32. postgres=# CREATE DATABASE ora_compatible_db DBCOMPATIBILITY 'A';
  33. --删除兼容TDORA格式的数据库。
  34. postgres=# DROP DATABASE td_compatible_db;
  35. postgres=# DROP DATABASE ora_compatible_db;