库级字符集和字符序
创建库/模式并指定默认字符集和字符序。
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_option] ...
create_option: [DEFAULT] {
CHARACTER SET [=] default_charset
| CHAR SET [=] default_charset
| CHARSET [=] default_charset
| COLLATE [=] default_collation
}
修改库/模式的默认字符集、字符序属性。
ALTER {DATABASE | SCHEMA} db_name
[create_option] ...
create_option: [DEFAULT] {
CHARACTER SET [=] default_charset
| CHAR SET [=] default_charset
| CHARSET [=] default_charset
| COLLATE [=] default_collation
}
语法说明:
- db_name
库/模式名称。
取值范围:字符串,要符合标识符的命名规范。
- default_charset
指定库/模式的默认字符集,单独指定时会将库/模式的默认字符序设置为指定的字符集的默认字符序。
- default_collation
指定库/模式的默认字符序,单独指定时会将库/模式的默认字符集设置为指定的字符序对应的字符集。
GaussDB通过以下方式选择库/模式的字符集和字符序:
-
如果同时指定了default_charset和default_collation,则使用字符集default_charset和字符序default_collation,且default_charset和default_collation需要对应,不对应时报错。
-
如果既不指定default_charset也不指定default_collation,则该库/模式字符集同server_encoding,字符序为该字符集的默认字符序。
- default_charset仅支持指定为带有默认字符序的字符集,如果指定的字符集没有默认字符序则报错。
- default_collation仅支持支持的字符序中的字符序,指定其他字符序会报错。
- 除BINARY字符集外,暂不支持创建新库/模式的字符集与数据库的server_encoding不同。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
-- 仅设置字符集,字符序为字符集的默认字符序 m_db=# CREATE SCHEMA test CHARSET utf8; -- 仅设置字符序,字符集为字符序关联的字符集 m_db=# CREATE SCHEMA test COLLATE utf8_bin; -- 同时设置字符集与字符序,字符集和字符序需对应 m_db=# CREATE SCHEMA test CHARSET utf8 COLLATE utf8_bin; -- 将test的默认字符集修改为utf8mb4,默认字符序修改为utf8mb4_bin。 m_db=# ALTER SCHEMA test CHARSET utf8mb4 COLLATE utf8mb4_bin; -- 删除表 m_db=# DROP SCHEMA test; |