模式级字符集和字符序

创建模式并指定默认字符集和字符序。

CREATE SCHEMA schema_name
	[ [DEFAULT] CHARACTER SET | CHARSET [ = ] default_charset ] 
	[ [DEFAULT] COLLATE [ = ] default_collation ];

修改模式的默认字符集、字符序属性。

ALTER SCHEMA schema_name 
    [ [DEFAULT] CHARACTER SET | CHARSET [ = ] default_charset ] [ [DEFAULT] COLLATE [ = ] default_collation ];

语法说明:

  • schema_name

    模式名称。

    取值范围:字符串,要符合标识符的命名规范。

  • default_charset

    指定模式的默认字符集,单独指定时会将模式的默认字符序设置为指定的字符集的默认字符序。

  • default_collation

    指定模式的默认字符序,单独指定时会将模式的默认字符集设置为指定的字符序对应的字符集。

openGauss通过以下方式选择模式的字符集和字符序:

  • 如果同时指定了 default_charsetdefault_collation ,则使用字符集 default_charset 和字符序 default_collation ,且 default_charsetdefault_collation 需要对应,不对应报错。
  • 如果仅指定了 default_charset ,则使用字符集 default_charset 及其默认字符序。
  • 如果仅指定了 default_collation ,则使用 default_collation 字符序和其对应的字符集。
  • 如果既不指定 default_charset 也不指定 default_collation ,则该模式没有默认字符集和默认字符序。

说明:

  • openGauss 的 SCHEMA 等价于 MySQL的 SCHEMA / DATABASE;在加载dolphin插件后,openGauss的 SCHEMA / DATABASE 与 MySQL 含义相同,语法参考 CREATE DATABASE
  • default_charact 仅支持指定为带有默认字符序的字符集,如果指定的字符集没有默认字符序则报错。
  • default_collation 仅支持指定为B模式下的字符序,指定其他字符序报错。
  • 创建新 SCHEMA 的字符集、字符序与数据库的 server_encoding 不同时需要先设置 b_format_behavior_compat_options 参数包含enable_multi_charset

示例:

-- 仅设置字符集,字符序为字符集的默认字符序
openGauss=# create schema test charset utf8;

-- 仅设置字符序,字符集为字符序关联的字符集
openGauss=# create schema test collate utf8_bin;

-- 同时设置字符集与字符序,字符集和字符序需对应
openGauss=# create schema test charset utf8 collate utf8_bin;

-- 将test的默认字符集修改为utf8mb4,默认字符序修改为utf8mb4_bin。
openGauss=# alter schema test charset utf8mb4 collate utf8mb4_bin;
意见反馈
编组 3备份
    openGauss 2024-05-08 00:42:15
    取消