MySQL 8.4 发行说明
标准 SQL 定义 NCHAR
或 NATIONAL CHAR
作为一种方法来指示 CHAR
列应使用某些预定义的字符集。MySQL 使用 utf8
作为此预定义的字符集。例如,以下数据类型声明等效
CHAR(10) CHARACTER SET utf8
NATIONAL CHARACTER(10)
NCHAR(10)
以下也是等效的
VARCHAR(10) CHARACTER SET utf8
NATIONAL VARCHAR(10)
NVARCHAR(10)
NCHAR VARCHAR(10)
NATIONAL CHARACTER VARYING(10)
NATIONAL CHAR VARYING(10)
可以使用 N'
(或 literal
'n'
)来创建国家字符集中的字符串。以下语句等效literal
'
SELECT N'some text';
SELECT n'some text';
SELECT _utf8'some text';
MySQL 8.4 将国家字符集解释为 utf8mb3
,该字符集现已弃用。因此,使用 NATIONAL CHARACTER
或其同义词之一来定义数据库、表或列的字符集会引发类似于以下内容的警告
NATIONAL/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.