MySQL の今後のバージョンでは、utf8
が 4 バイトの utf8
になり、3 バイトの utf8
を指定するときに utf8mb3
を示す必要が生じる可能性があります。マスターサーバーとスレーブサーバーの MySQL のバージョンが異なるときにレプリケーションで生じる将来の問題を回避するために、ユーザーは、CHARACTER SET
句で utf8mb3
を、COLLATE
句で utf8mb3_
を指定できます。ここで、collation_substring
collation_substring
は bin
、czech_ci
、danish_ci
、esperanto_ci
、estonian_ci
などです。例:
CREATE TABLE t (s1 CHAR(1) CHARACTER SET utf8mb3;
SELECT * FROM t WHERE s1 COLLATE utf8mb3_general_ci = 'x';
DECLARE x VARCHAR(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_danish_ci;
SELECT CAST('a' AS CHAR CHARACTER SET utf8) COLLATE utf8_czech_ci;
MySQL は即座に、エイリアス内の utf8mb3
のインスタンスを、utf8
に変換するので、SHOW CREATE TABLE
、SELECT CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.COLUMNS
、SELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS
などのステートメントでは、真の名前、utf8
、または utf8_
がユーザーに表示されます。
collation_substring
utf8mb3
エイリアスは、CHARACTER SET
句と、ほかの特定の場所でのみ有効です。たとえば、次の場合は有効です。
mysqld --character-set-server=utf8mb3
SET NAMES 'utf8mb3'; /* and other SET statements that have similar effect */
SELECT _utf8mb3 'a';
照合順序が基づいている Unicode 照合アルゴリズムのバージョンを示すバージョン番号を含む照合順序名 (
など) を表す、対応する utf8
_unicode_520_ciutf8
照合順序の utf8mb3
エイリアスはありません。