I. 教程
II. SQL 语言
III. 服务器管理
- 章14. 安装指导
- 章15. 在 Windows 上安装客户端
- 章16. 操作系统环境
- 章17. 服务器配置
- 章18. 数据库角色和权限
- 章19. 管理数据库
- 章21. 区域
- 章20. 用户认证
- 章22. 日常数据库维护工作
- 章23. 备份与恢复
- 章24. 高可用性与负载均衡
- 章25. 监控数据库的活动
- 章26. 监控磁盘使用情况
- 章27. 可靠性和预写式日志
- 章28. 回归测试
IV. 客户端接口
- Chapter 28. libpq - C 库
- 章29.
- Chapter 30. ecpg - 在 C 里嵌入 SQL
- Chapter 31. 信息模式
- 31.2. 数据类型
- 31.3. informationschemacatalog_name
- 31.4. applicable_roles
- 31.5. check_constraints
- 31.6. columndomainusage
- 31.7. column_privileges
- 31.8. columnudtusage
- 31.9. columns
- 31.10. constraintcolumnusage
- 31.11. constrainttableusage
- 31.12. datatypeprivileges
- 31.13. domain_constraints
- 31.14. domainudtusage
- 31.15. domains
- 31.16. element_types
- 31.17. enabled_roles
- 31.18. keycolumnusage
- 31.20. referential_constraints
- 31.21. rolecolumngrants
- 31.22. roleroutinegrants
- 31.23. roletablegrants
- 31.24. roleusagegrants
- 31.25. routine_privileges
- 31.26. routines
- 31.27. schemata
- 31.28. sql_features
- 31.29. sqlimplementationinfo
- 31.30. sql_languages
- 31.31. sql_packages
- 31.32. sql_sizing
- 31.33. sqlsizingprofiles
- 31.34. table_constraints
- 31.35. table_privileges
- 31.36. tables
- 31.37. triggers
- 31.38. usage_privileges
- 31.39. viewcolumnusage
- 31.40. viewtableusage
- 31.41. views
V. 服务器端编程
- 章33. 扩展 SQL
- 章34. 触发器
- 章35. 规则系统
- 章36. 过程语言
- 章37. PL/pgSQL - SQL 过程语言
- 章38. PL/Tcl - Tcl 过程语言
- 章39. PL/Perl - Perl 过程语言
- 章40. PL/Python - Python 过程语言
- 章41. 服务器编程接口
VI. 参考手册
- I. SQL 命令
- ABORT
- ALTER AGGREGATE
- ALTER CONVERSION
- ALTER DATABASE
- ALTER DOMAIN
- ALTER FUNCTION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER OPERATOR
- ALTER OPERATOR CLASS
- ALTER ROLE
- ALTER SCHEMA
- ALTER SEQUENCE
- ALTER TABLE
- ALTER TABLESPACE
- ALTER TRIGGER
- ALTER TYPE
- ALTER USER
- ANALYZE
- BEGIN
- CHECKPOINT
- CLOSE
- CLUSTER
- COMMENT
- COMMIT PREPARED
- COMMIT
- COPY
- CREATE AGGREGATE
- CREATE CAST
- CREATE CONSTRAINT TRIGGER
- CREATE CONVERSION
- CREATE DATABASE
- CREATE DOMAIN
- CREATE FUNCTION
- CREATE GROUP
- CREATE INDEX
- CREATE LANGUAGE
- CREATE OPERATOR CLASS
- CREATE OPERATOR
- CREATE ROLE
- CREATE RULE
- CREATE SCHEMA
- CREATE SEQUENCE
- CREATE TABLE
- CREATE TABLE AS
- CREATE TABLESPACE
- CREATE TRIGGER
- CREATE TYPE
- CREATE USER
- CREATE VIEW
- DEALLOCATE
- DECLARE
- DELETE
- DROP OWNED
- DROP AGGREGATE
- DROP CAST
- DROP CONVERSION
- DROP DATABASE
- DROP DOMAIN
- DROP FUNCTION
- DROP GROUP
- DROP INDEX
- DROP LANGUAGE
- DROP OPERATOR CLASS
- DROP OPERATOR
- DROP ROLE
- DROP RULE
- DROP SCHEMA
- DROP SEQUENCE
- DROP TABLE
- DROP TABLESPACE
- DROP TRIGGER
- DROP TYPE
- DROP USER
- DROP VIEW
- END
- EXECUTE
- EXPLAIN
- FETCH
- GRANT
- INSERT
- LISTEN
- LOAD
- LOCK
- MOVE
- NOTIFY
- PREPARE TRANSACTION
- PREPARE
- REASSIGN OWNED
- REINDEX
- RELEASE SAVEPOINT
- RESET
- REVOKE
- ROLLBACK PREPARED
- ROLLBACK TO SAVEPOINT
- ROLLBACK
- SAVEPOINT
- SELECT
- SELECT INTO
- SET
- SET CONSTRAINTS
- SET ROLE
- SET SESSION AUTHORIZATION
- SET TRANSACTION
- SHOW
- START TRANSACTION
- TRUNCATE
- UNLISTEN
- UPDATE
- VACUUM
- II. PostgreSQL 客户端应用程序
- III. PostgreSQL 服务器应用程序
VII. 内部
- 章42. PostgreSQL 内部概貌
- 章43. 系统表
- 43.1. 概述
- 43.2. pg_aggregate
- 43.3. pg_am
- 43.4. pg_amop
- 43.5. pg_amproc
- 43.6. pg_attrdef
- 43.7. pg_attribute
- 43.8. pg_authid
- 43.9. pgauthmembers
- 43.10. pg_autovacuum
- 43.11. pg_cast
- 43.12. pg_class
- 43.13. pg_constraint
- 43.14. pg_conversion
- 43.15. pg_database
- 43.16. pg_depend
- 43.17. pg_description
- 43.18. pg_index
- 43.19. pg_inherits
- 43.20. pg_language
- 43.21. pg_largeobject
- 43.22. pg_listener
- 43.23. pg_namespace
- 43.24. pg_opclass
- 43.25. pg_operator
- 43.26. pg_pltemplate
- 43.27. pg_proc
- 43.28. pg_rewrite
- 43.29. pg_shdepend
- 43.30. pg_shdescription
- 43.31. pg_statistic
- 43.32. pg_tablespace
- 43.33. pg_trigger
- 43.34. pg_type
- 43.35. 系统视图
- 43.36. pg_cursors
- 43.37. pg_group
- 43.38. pg_indexes
- 43.39. pg_locks
- 43.40. pgpreparedstatements
- 43.41. pgpreparedxacts
- 43.42. pg_roles
- 43.43. pg_rules
- 43.44. pg_settings
- 43.45. pg_shadow
- 43.46. pg_stats
- 43.47. pg_tables
- 43.48. pgtimezoneabbrevs
- 43.49. pgtimezonenames
- 43.50. pg_user
- 43.51. pg_views
- 章44. 前/后端协议
- 章45. PostgreSQL 编码约定
- 章46. 本地语言支持
- 章47. 书写一个过程语言处理器
- 章48. 基因查询优化器
- 章49. 索引访问方法接口定义
- 章50. GiST 索引
- 章51. GIN 索引
- 章52. 数据库物理存储
- 章53. BKI 后端接口
- 章54. 规划器如何使用统计信息
VIII. 附录
CREATE DATABASE
名称
CREATE DATABASE--创建一个新数据库语法
CREATE DATABASEname
[ [ WITH ] [ OWNER [=]dbowner
] [ TEMPLATE [=]template
] [ ENCODING [=]encoding
] [ TABLESPACE [=]tablespace
] [ CONNECTION LIMIT [=]connlimit
] ]
描述
CREATE DATABASE
创建一个新数据库。
要创建一个数据库,你必须是一个超级用户或者有特殊的 CREATEDB
权限。参阅 CREATE USER 。
通常,创建者将成为新数据库的管理员。超级用户可以用 OWNER
子句创建其它用户所有的数据库。甚至可以创建没有特殊权限的用户所拥有的数据库。有 CREATEDB
权限的非超级用户使用只能创建自己使用的数据库。
缺省时,新数据库将通过克隆标准系统数据库 template1
来创建。可以通过 TEMPLATE
指定不同的模板。尤其是,用 name
TEMPLATE template0
创建一个很纯净的、只包括 PostgreSQL 预定义的标准对象的数据库。这个方法可以避免把任何已经加入到 template1
里的本地安装对象拷贝到新数据库。
参数
name
要创建的数据库名字
dbowner
数据库用户的名字,他将拥有新数据库,或者是写
DEFAULT
使用缺省用户(也就是执行命令的用户)。template
模板名(从哪个模板创建新数据库),或者用
DEFAULT
使用缺省模板(template1
)。encoding
创建新数据库使用的字符编码。可以使用文本名字(例如
'SQL_ASCII'
)、整数编号、DEFAULT
(模版数据库的编码)。PostgreSQL 服务器支持的字符集在节21.2.1里描述。tablespace
和新数据库关联的表空间名字,或者用
DEFAULT
表示模版数据库的表空间。这个表空间将成为在这个数据库里创建的对象的缺省表空间。参阅 CREATE TABLESPACE 获取更多信息。connlimit
数据库可以接受多少并发的连接。-1(缺省)意味着没有限制。
可选参数可以按任意顺序书写,而不仅仅是上面显示的顺序。
注意
CREATE DATABASE
不能在事务块里面执行。
类似"could not initialize database directory"这样的错误最有可能是因为数据目录的权限不够或者磁盘满之类的文件系统问题。
使用 DROP DATABASE 删除一个数据库
程序 createdb 是这个命令的封装,使用更加方便。
尽管可以通过把某数据库名声明为模板(而非 template1
),但是这(还)不是一个通用的"COPY DATABASE
"功能。主要的限制是在从模版复制的时候不允许有其它会话链接到模版数据库上。如果在开始执行 CREATE DATABASE
的时候有其它会话正连接在模版数据库上,那么将会失败;否则直到 CREATE DATABASE
完成之后才允许建立新的会话连接。参见节19.3获取更多信息。
CONNECTION LIMIT
选项只是近似地强制;如果两个新的连接几乎同时发起,而只剩下一个连接"槽位"了,那么很可能两个连接都失效。同样,这个限制并不强加在超级用户上。
例子
创建一个新数据库:
CREATE DATABASE lusiadas;
创建一个由用户 salesapp
拥有的数据库 sales
,缺省表空间是 salesspace
:
CREATE DATABASE sales OWNER salesapp TABLESPACE salesspace;
创建一个数据库 music
,支持 ISO-8859-1 字符集:
CREATE DATABASE music ENCODING 'LATIN1';
兼容性
在 SQL 标准里没有 CREATE DATABASE
语句。数据库等同于目录,其创建是由实现决定的。
又见
ALTER DATABASE, DROP DATABASE如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论