MySQL 8.4 Release Notes
12.3.7 国家字符集
Standard SQL defines NCHAR
or NATIONAL CHAR
as a way to indicate that a CHAR
column should use some predefined character set. MySQL uses utf8
as this predefined character set. For example, these data type declarations are equivalent:
CHAR(10) CHARACTER SET utf8
NATIONAL CHARACTER(10)
NCHAR(10)
As are these:
VARCHAR(10) CHARACTER SET utf8
NATIONAL VARCHAR(10)
NVARCHAR(10)
NCHAR VARCHAR(10)
NATIONAL CHARACTER VARYING(10)
NATIONAL CHAR VARYING(10)
You can use N'
(or literal
'n'
) to create a string in the national character set. These statements are equivalent:literal
'
SELECT N'some text';
SELECT n'some text';
SELECT _utf8'some text';
MySQL 8.4 interprets the national character set as utf8mb3
, which is now deprecated. Thus, using NATIONAL CHARACTER
or one of its synonyms to define the character set for a database, table, or column raises a warning similar to this one:
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.