1. ホーム
  2. mysql

[解決済み】テーブルのデフォルト照合順序を変更する方法は?

2022-04-17 21:20:14

質問

create table check2(f1 varchar(20),f2 varchar(20));

デフォルトの照合順序でテーブルを作成します。 latin1_general_ci ;

alter table check2 collate latin1_general_cs;
show full columns from check2;

は、カラムの照合順序が'latin1_general_ci'であることを示しています。

では、alter tableコマンドの効果はどうでしょうか。

どのように解決するのですか?

テーブルのデフォルトのキャラクタセットと照合順序を変更するには 既存の列のものも含む (ただし に変換します。 節があります)。

alter table <some_table> convert to character set utf8mb4 collate utf8mb4_unicode_ci;

いくつかのコメントを促したおかげで、答えを編集しました。

<ブロッククオート

utf8を推奨するのは避けるべき。ほとんど思い通りにならないし、予期せぬ混乱を招くことも多い。utf8の文字セットはUTF-8と完全に互換性があるわけではありません。UTF-8を使いたいなら、utf8mb4キャラクタセットが必要です。- Rich Remer Mar 28 '18 at 23:41

そして

これはかなり重要なことのようだ、コメントを読んでよかった、そして@RichRemerに感謝する。Nikki , 私は、これが多くのビューを得ることを考えると、あなたの答えの中でそれを編集するべきだと思います。こちらをご覧ください。 https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8.html とこちら MySQLのutf8mb4とutf8 charsetsの違いは何ですか? - ポールプロ 3月12日 17:46