提问者

发布26
回答153

相关问题

相关资料

表名 字段名 发表于 2021-03-10 阅读 216回复 1

GBase 8a支持中文表名和字段名


GBase 8a数据库集群默认表和字段名字只支持字母、数字和下划线。通过设置gcluster_extend_ident参数,可以提供对中文表名和字段名的支持。

参数
gcluster_extend_ident
用来控制是否可以创建中文表名字段、特殊字符的字段。
默认为 0,0 表示不开启,为 1 表示开启。
注:打开 gcluster_extend_ident 参数之后,系统从原来的只能创建字母
数字下划线命名方式,扩展到支持中文和特殊字符,但特殊字符不包括
“‘”,”””,”\”,” . “四个字符。
使用样例
默认创建中文字段或表名,会报ERROR 1711 (HY000): (GBA-02DD-0008) Invalid character string错误。
表一旦创建成功,即使关闭参数,后续也不再受该参数影响。


gbase> create table 人员信息(编号 int, 姓名 varchar(100));
ERROR 1711 (HY000): (GBA-02DD-0008) Invalid character string: '人员信息'
gbase> set gcluster_extend_ident=1;
ERROR 1229 (HY000): Variable 'gcluster_extend_ident' is a GLOBAL variable and should be set with SET GLOBAL
gbase> set global gcluster_extend_ident=1;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)

gbase> create table 人员信息(编号 int, 姓名 varchar(100));
Query OK, 0 rows affected (Elapsed: 00:00:00.73)

gbase> select * from 人员信息;
Empty set (Elapsed: 00:00:00.02)

gbase> insert into 人员信息 values(1,'张三'),(2,'李四');
Query OK, 2 rows affected (Elapsed: 00:00:00.55)
Records: 2  Duplicates: 0  Warnings: 0

gbase> select * from 人员信息;
+--------+--------+
| 编号   | 姓名   |
+--------+--------+
|      1 | 张三   |
|      2 | 李四   |
+--------+--------+
2 rows in set (Elapsed: 00:00:00.02)

gbase> desc 人员信息;
+--------+--------------+------+-----+---------+-------+
| Field  | Type         | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| 编号   | int(11)      | YES  |     | NULL    |       |
| 姓名   | varchar(100) | YES  |     | NULL    |       |
+--------+--------------+------+-----+---------+-------+
2 rows in set (Elapsed: 00:00:00.01)

gbase> set global gcluster_extend_ident=0;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)

gbase> desc 人员信息;
+--------+--------------+------+-----+---------+-------+
| Field  | Type         | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| 编号   | int(11)      | YES  |     | NULL    |       |
| 姓名   | varchar(100) | YES  |     | NULL    |       |
+--------+--------------+------+-----+---------+-------+
2 rows in set (Elapsed: 00:00:00.00)

gbase> select * from 人员信息;
+--------+--------+
| 编号   | 姓名   |
+--------+--------+
|      1 | 张三   |
|      2 | 李四   |
+--------+--------+
2 rows in set (Elapsed: 00:00:00.01)

gbase> insert into 人员信息 values(3,'王五'),(4,'赵六');
Query OK, 2 rows affected (Elapsed: 00:00:00.47)
Records: 2  Duplicates: 0  Warnings: 0

gbase> select * from 人员信息;
+--------+--------+
| 编号   | 姓名   |
+--------+--------+
|      1 | 张三   |
|      2 | 李四   |
|      3 | 王五   |
|      4 | 赵六   |
+--------+--------+
4 rows in set (Elapsed: 00:00:00.02)

gbase> select * from 人员信息 where 姓名='张三';

+--------+--------+
| 编号   | 姓名   |
+--------+--------+
|      1 | 张三   |
+--------+--------+
1 row in set (Elapsed: 00:00:00.01)


回答 (1)

笑看未来
发表于2021-3-25 17:29
谢谢,学习了。

撰写回答

您需要登录后才可以回帖 登录 | 立即注册