各照合順序には一意の ID が必要です。照合順序を追加するには、現在使用されていない ID 値を選択する必要があります。1024 から 2047 の ID 範囲は、ユーザー定義の照合順序に予約されています。MySQL 5.6.3 以降、InnoDB
テーブルは 2 バイトの照合順序 ID をサポートしています。MySQL 5.6.3 より前では、InnoDB
テーブルは、255 を最大値とするシングルバイトの照合順序 ID だけをサポートしていました。MyISAM
テーブルでは、MySQL 5.5 以降の 2 バイトの照合順序 ID をサポートしています。
選択した照合順序は次のコンテキストで表示されます。
INFORMATION_SCHEMA.COLLATIONS
テーブルのID
カラム。SHOW COLLATION
出力のId
カラム。MYSQL_FIELD
C API データ構造のcharsetnr
メンバー。mysql_get_character_set_info()
C API 関数で返されるMY_CHARSET_INFO
データ構造のnumber
メンバー。
現在使用されている最大の ID を判別するには、次のステートメントを発行します。
mysql> SELECT MAX(ID) FROM INFORMATION_SCHEMA.COLLATIONS;
+---------+
| MAX(ID) |
+---------+
| 210 |
+---------+
現在使用されているすべての ID のリストを表示するには、次のステートメントを発行します。
mysql> SELECT ID FROM INFORMATION_SCHEMA.COLLATIONS ORDER BY ID;
+-----+
| ID |
+-----+
| 1 |
| 2 |
| ... |
| 52 |
| 53 |
| 57 |
| 58 |
| ... |
| 98 |
| 99 |
| 128 |
| 129 |
| ... |
| 210 |
+-----+
MySQL 5.5 より前では、ユーザー定義の照合順序 ID の範囲が用意されており、1 から 254 の範囲で ID を選択する必要があります。この場合、MySQL をアップグレードすると、選択した照合順序 ID が新しい MySQL 配布に含められた照合順序に割り当てられていることがわかります。この場合、自身の照合順序には新しい値を選択する必要があります。
さらに、アップグレードする前に、変更する構成ファイルを保存する必要があります。適切にアップグレードすると、そのプロセスによって変更したファイルが置き換えられます。