MYSQL 修改字段编码

utf8mb4_general_ci(utf8mb4_general_case_insensitive_ci):

这是旧版的字符集和排序规则,用于比较和排序字符。它在进行字符比较时不区分大小写,但是对于某些语言和字符,它可能会产生不准确的排序结果。这是因为它不考虑字符的特定语义和上下文。

utf8mb4_0900_ai_ci(utf8mb4_0900_as_cs_ci):

这是 MySQL 8.0.0 版本及以后引入的新版字符集和排序规则。它是一个更为准确和语义化的排序规则,不仅会考虑字符的大小写,还会考虑字符的语义信息。这就意味着在某些情况下,它能够产生更符合预期的排序结果,特别是对于一些特殊字符、多语言文本等。

SELECT *,CONCAT(
      'ALTER TABLE ', tableName,
      ' MODIFY ', columnName, ' VARCHAR(', columnLength, ') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ',
      ' DEFAULT ', IFNULL(QUOTE(columnDefault), "''"),
      ' COMMENT ', IFNULL(QUOTE(columnComment), "''"), ';'
    ) FROM (
	SELECT table_name AS tableName, column_name AS columnName, character_maximum_length AS columnLength, column_default AS columnDefault, column_comment AS columnComment
	FROM information_schema.columns
	WHERE table_schema = 'db_performance_plus' 
		AND data_type = 'varchar'
		AND character_set_name = 'utf8'
)T;
posted @ 2023-08-23 14:50  大王快跑丶  阅读(58)  评论(0编辑  收藏  举报