表级字符集和字符序
设置表的默认字符集和默认字符序,创建表操作请参见CREATE TABLE。
CREATE TABLE table_name (column_list) [ [DEFAULT] CHARACTER SET | CHARSET [ = ] default_charset ] [ [DEFAULT] COLLATE [ = ] default_collation ]
修改表的默认字符集和默认字符序,修改不会影响表中当前已经存在的列,修改表操作请参见ALTER TABLE。
ALTER TABLE table_name [ [DEFAULT] CHARACTER SET | CHARSET [ = ] default_charset ] [ [DEFAULT] COLLATE [ = ] default_collation ]
ALTER TABLE table_name CONVERT TO CHARACTER SET | CHARSET charset [ COLLATE collation ]
参数说明
- table_name
表名称。
- default_charset
指定表的默认字符集,单独指定时会将表的默认字符序设置为指定字符集的默认字符序。
- default_collation
指定表的默认字符序,单独指定时会将表的默认字符集设置为指定字符序对应的字符集。
GaussDB通过以下方式选择表的字符集和字符序:
-
如果同时指定了default_charset和default_collation,则使用字符集 default_charset 和字符序default_collation,且default_charset和default_collation需要对应,不对应会产生报错。
-
如果既不指定default_charset也不指定default_collation,则使用该表所在的模式的默认字符集和默认字符序作为表的默认字符集和表的默认字符序。
示例:
1 2 3 4 5 6 7 8 9 10 11 |
-- 仅设置字符集,字符序为字符集的默认字符序 gaussdb=# CREATE TABLE test(c1 text) CHARSET utf8; -- 仅设置字符序,字符集为字符序关联的字符集 gaussdb=# CREATE TABLE test(c1 text) COLLATE utf8_bin; -- 同时设置字符集与字符序,字符集和字符序需对应 gaussdb=# CREATE TABLE test(c1 text) CHARSET utf8 COLLATE utf8_bin; -- 修改表的默认字符集为utf8mb4,默认字符序为utf8mb4_bin gaussdb=# ALTER TABLE test CHARSET utf8mb4 COLLATE utf8mb4_bin; |