400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
系统配置参数
SQL 参考
常见问题(FAQ)
新架构 FAQ
集群部署 FAQ
SQL 查询 FAQ
MatrixGate FAQ
运维 FAQ
监控告警 FAQ
PXF FAQ
PLPython FAQ
性能 FAQ
创建一个新的数据库。
CREATE DATABASE name [ [WITH] [OWNER [=] user_name]
[TEMPLATE [=] template]
[ENCODING [=] encoding]
[LC_COLLATE [=] lc_collate]
[LC_CTYPE [=] lc_ctype]
[TABLESPACE [=] tablespace]
[CONNECTION LIMIT [=] connlimit ] ]
CREATE DATABASE创建一个新的数据库。 要创建数据库,您必须是超级用户或具有特殊的CREATEDB特权。
默认情况下,创建者成为新数据库的所有者。 超级用户可以使用OWNER子句创建其他用户拥有的数据库。 他们甚至可以创建没有特殊特权的用户所拥有的数据库。 具有CREATEDB特权的非超级用户只能创建自己拥有的数据库。
默认情况下,将通过克隆标准系统数据库template1来创建新数据库。 可以通过写入TEMPLATE name来指定其他模板。 特别是,通过编写TEMPLATE template0, 您可以创建一个仅包含 YMatrix 数据库预定义的标准对象的干净数据库。 如果您希望避免复制任何可能已添加到template1的本地安装对象,则此功能很有用。
name
user_name
template
encoding
lc_collate
lc_ctype
tablespace
connlimit
CREATE DATABASE不能在事务块内执行。
通过将数据库名称指定为模板来复制数据库时,在复制数据库过程中,不能将其他会话连接到模板数据库。 模板数据库的新连接被锁定,直到CREATE DATABASE完成。
对超级用户没有强制CONNECTION LIMIT。
为新数据库指定的字符集编码必须与所选的语言环境设置(LC_COLLATE和LC_CTYPE)兼容。 如果语言环境为C(或等价的POSIX),则允许所有编码,但是对于其他语言环境设置,只有一种编码可以正常工作。 CREATE DATABASE将允许超级用户指定SQL_ASCII编码,而与语言环境设置无关, 但是不建议使用此选项,并且如果与语言环境不兼容的数据存储在数据库中,则可能会导致字符串函数出现异常。
编码和语言环境设置必须与模板数据库的设置匹配,除非将template0用作模板。 这是因为COLLATE和CTYPE影响索引的顺序, 因此从模板数据库复制的任何索引在具有不同设置的新数据库中都将无效。 但是,已知template0不包含任何会受到影响的数据或索引。
要创建一个新的数据库:
CREATE DATABASE test;
要创建用户salesapp拥有的数据库sales并使用salesspace的默认表空间:
CREATE DATABASE sales OWNER salesapp TABLESPACE salesspace;
要创建支持ISO-8859-1字符集的数据库music:
CREATE DATABASE music ENCODING 'LATIN1' TEMPLATE template0;
在此示例中,仅当template1的编码不是ISO-8859-1时才需要TEMPLATE template0子句。 请注意,更改编码可能还需要选择新的LC_COLLATE和LC_CTYPE设置。
SQL标准中没有CREATE DATABASE语句。 数据库等效于目录,目录的创建是实现定义的。