MySQL 9.0 发行说明
标准 SQL 定义 NCHAR
或 NATIONAL CHAR
作为一种方式来指示 CHAR
列应该使用某些预定义的字符集。MySQL 使用 utf8
作为此预定义的字符集。例如,以下数据类型声明是等效的
Press CTRL+C to copyCHAR(10) CHARACTER SET utf8 NATIONAL CHARACTER(10) NCHAR(10)
以下也是等效的
Press CTRL+C to copyVARCHAR(10) CHARACTER SET utf8 NATIONAL VARCHAR(10) NVARCHAR(10) NCHAR VARCHAR(10) NATIONAL CHARACTER VARYING(10) NATIONAL CHAR VARYING(10)
您可以使用 N'
(或 literal
'n'
) 来创建国家字符集中的字符串。以下语句是等效的literal
'
Press CTRL+C to copySELECT N'some text'; SELECT n'some text'; SELECT _utf8'some text';
MySQL 9.0 将国家字符集解释为 utf8mb3
,该字符集现已弃用。因此,使用 NATIONAL CHARACTER
或其同义词之一来定义数据库、表或列的字符集将引发类似于以下内容的警告
Press CTRL+C to copyNATIONAL/NCHAR/NVARCHAR implies the character set UTF8MB3, which will be replaced by UTF8MB4 in a future release. Please consider using CHAR(x) CHARACTER SET UTF8MB4 in order to be unambiguous.