utf8mb4_general_ci 和 utf8mb4有什么区别
时间: 2023-08-24 18:07:01 浏览: 169
utf8mb4_general_ci 和 utf8mb4 是 MySQL 中的字符集和排序规则的名称。
utf8mb4 是一种字符集,它支持存储 Unicode 字符集中的所有字符,包括 Emoji 表情符号等。而 utf8 字符集只能支持部分 Unicode 字符,无法正确存储一些特殊字符。
utf8mb4_general_ci 是 utf8mb4 字符集的一个排序规则,其中 "ci" 表示大小写不敏感(case-insensitive)。这种排序规则会在比较字符串时忽略大小写,例如 "abc" 和 "ABC" 会被认为是相等的。
总结来说,utf8mb4 是一种字符集,可以存储更多的字符,而 utf8mb4_general_ci 是一种与之对应的排序规则,它使得字符比较时不区分大小写。
相关问题
把这段代码改为doris的建表语句CREATE TABLE `aa_ccd` ( `ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `CCDCODE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `ICNNAME` varchar(107) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `ISDISEASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `ENNAME` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `PARENTID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `YEAR` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `NOTE` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEFTSPACE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LIMITED` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL1` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL2` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL3` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL4` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, PRIMARY KEY (`ID`) USING BTREE, INDEX `index1`(`CCDCODE`) USING BTREE, INDEX `index2`(`ICNNAME`) USING BTREE, INDEX `index_yes`(`YEAR`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
您好!以下是将代码改为Doris建表语句的结果:
CREATE TABLE aa_ccd (
ID VARCHAR(20),
CCDCODE VARCHAR(20),
ICNNAME VARCHAR(107),
ISDISEASE VARCHAR(20),
ENNAME VARCHAR(20),
PARENTID VARCHAR(20),
YEAR VARCHAR(4),
NOTE VARCHAR(200),
LEFTSPACE VARCHAR(10),
LIMITED VARCHAR(4),
LEVEL1 VARCHAR(4),
LEVEL2 VARCHAR(4),
LEVEL3 VARCHAR(4),
LEVEL4 VARCHAR(4)
) DISTRIBUTE BY HASH(ID) BUCKETS 8 PROPERTIES("replication_num"="1");
DROP TABLE IF EXISTS `aa_ccd`; CREATE TABLE `aa_ccd` ( `ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `CCDCODE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `ICNNAME` varchar(107) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `ISDISEASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `ENNAME` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `PARENTID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `YEAR` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `NOTE` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEFTSPACE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LIMITED` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL1` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL2` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL3` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL4` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, PRIMARY KEY (`ID`) USING BTREE, INDEX `index1`(`CCDCODE`) USING BTREE, INDEX `index2`(`ICNNAME`) USING BTREE, INDEX `index_yes`(`YEAR`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; 这个建表sql在doris数据库执行时报错,[SQL] Query doris_2 start [ERR] 1105 - errCode = 2, detailMessage = Syntax error in line 25: `id` varchar(50) CHARACTER SET utf8mb4 COLLAT... ^ Encountered: CHARACTER Expected: COMMA [ERR] 这是为什么
根据报错信息,可以看到是在第25行出现了语法错误,缺少了逗号。具体来说,是因为在第24行的最后缺少了一个逗号,导致第25行的语句被解析为一个新的字段,而不是原本的字段属性。因此,应该在第24行最后加上逗号,即在 `LEVEL4` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL 后面加一个逗号,就可以解决这个问题了。
阅读全文
相关推荐
















