MySQL 9.0 版本注意事項
標準 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 9.0 將國家字元集解釋為 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.