本文讲述 OceanBase 中创建的 View(视图) 的 Collation 是如何设置的。
OceanBase 中的视图是被看做是一种特殊的 SQL,因此它的 collation 来自于 collation_connection。
示例如下:
设置连接使用的字符集与字符序 utf8mb4_bin。
obclient [mysql]> set collation_connection=utf8mb4_bin; Query OK, 0 rows affected (0.001 sec)创建视图 testv4。
obclient [mysql]> create view testv4 as select * from test_1; Query OK, 0 rows affected (0.044 sec)显示已创建视图 testv4 的信息。
obclient [mysql]> show create view testv4;输出结果如下:
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+ | View | Create View | character_set_client | collation_connection | +--------+----------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+ | testv4 | CREATE VIEW `testv4` AS select `mysql`.`test_1`.`id` AS `id`,`mysql`.`test_1`.`name` AS `name`,`mysql`.`test_1`.`phone` AS `phone` from `mysql`.`test_1` | utf8mb4 | utf8mb4_bin | +--------+----------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+ 1 row in set (0.002 sec)设置连接使用的字符集与字符序 utf8mb4_general_ci。
obclient [mysql]> set collation_connection=utf8mb4_general_ci; Query OK, 0 rows affected (0.000 sec)创建视图 testv5。
obclient [mysql]> create view testv5 as select * from test_1; Query OK, 0 rows affected (0.013 sec)显示已创建视图 testv5 的信息。
obclient [mysql]> show create view testv5;输出结果如下:
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+ | View | Create View | character_set_client | collation_connection | +--------+----------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+ | testv5 | CREATE VIEW `testv5` AS select `mysql`.`test_1`.`id` AS `id`,`mysql`.`test_1`.`name` AS `name`,`mysql`.`test_1`.`phone` AS `phone` from `mysql`.`test_1` | utf8mb4 | utf8mb4_general_ci | +--------+----------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+ 1 row in set (0.002 sec)
适用版本
OceanBase 数据库所有版本。