utf8mb4_general_ci 和utf8mb4_0900_ai_ci 不同的库能不能直接倒入
时间: 2023-12-01 11:02:25 浏览: 113
utf8mb4_general_ci 和 utf8mb4_0900_ai_ci 是不同的排序规则,它们的区别在于对一些特殊字符的排序方式不同。如果两个库的字符集和排序规则相同,那么可以直接将数据导入到另一个库中。但是如果两个库的字符集和排序规则不同,那么在导入数据之前需要先将数据进行转换,否则可能会导致数据乱码或排序错误等问题。因此,在导入数据之前,需要先确认两个库的字符集和排序规则是否相同,如果不同,需要进行相应的转换操作。
相关问题
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 后面加一个逗号,就可以解决这个问题了。
utf8mb4_0900_ai_ci utf8mb4_general_ci
utf8mb4_0900_ai_ci 和 utf8mb4_general_ci 都是MySQL的排序字符集之一。
utf8mb4_0900_ai_ci 是在MySQL 8.0.0版本后引入的一种排序规则。它基于Unicode Collation Algorithm,支持对多种语言进行排序,并考虑了不同语言的特殊规则和排序顺序。
utf8mb4_general_ci 则是MySQL较早版本中使用的排序规则。它对字符进行简单的二进制比较,不考虑各种语言的排序规则和特殊情况。相比于utf8mb4_0900_ai_ci,utf8mb4_general_ci 能够提供更快的排序性能,但在某些特殊情况下可能会导致排序结果不符合用户的期望。
因此,如果你的数据库涉及到多种语言,并希望得到更准确的排序结果,推荐使用 utf8mb4_0900_ai_ci。如果你的数据库只涉及到简单的字符比较,并对排序性能有更高要求,可以选择 utf8mb4_general_ci。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [MySQL常用排序规则utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_bin、utf8mb4_0900_ai_ci和存储字符集...](https://blog.csdn.net/munangs/article/details/126617226)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文