OpenGauss中创建数据库的代码如下:
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 ]}[...] ];
我们这里需要关注2个参数:ENCODING 和 DBCOMPATIBILITY 。
- ENCODING 表示字符集编码,不指定时,默认使用模版数据库的编码。模板数据库template0和template1的编码默认与操作系统环境相关。template1不允许修改字符编码,因此若要变更编码,需要使用template0创建数据库。生产环境建议使用UTF-8编码。
- DBCOMPATIBILITY 表示兼容性,指定兼容的数据库的类型,默认兼容O。 openGauss支持A、B、C和PG四种兼容模式,分别表示兼容Oracle、MySQL、Teradata(TD)和PostgreSQL。但是C目前已经放弃支持。因此常用的取值是A、B、PG,不同兼容模式下的语法行为存在一定差异,默认为A兼容模式。
openGauss=# CREATE DATABASE cndba dbcompatibility = 'A';
openGauss=# CREATE DATABASE ustc dbcompatibility = 'C';
初始时,openGauss包含两个模板数据库template0、template1,以及一个默认的用户数据库postgres。postgres默认的兼容数据库类型为O(即 DBCOMPATIBILITY = A ),该兼容类型下将空字符串作为NULL处理。 不同的兼容性最常用的就是对空值的处理,目前兼容最好的还是pg。
注意:
1.A兼容性下,数据库将空字符串作为NULL处理,数据类型DATE会被替换为TIMESTAMP(0) WITHOUT TIME ZONE。
2.将字符串转换成整数类型时,如果输入不合法,B兼容性会将输入转换为0,而其它兼容性则会报错。
3.PG兼容性下,CHAR和VARCHAR以字符为计数单位,其它兼容性以字节为计数单位。 例如,对于UTF-8字符集,CHAR(3)在PG兼容性下能存放3个中文字符,而在其它兼容性下只能存放1个中文字符。
版权声明:本文为博主原创文章,未经博主允许不得转载。
- 上一篇:openGauss 数据库的启动和关闭
- 下一篇:openGauss 配置 远程连接