@niruniru

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

MySQLのパーティションの振り分けに日本語のカラムを使用したい

解決したいこと

MySQLのパーティションの振り分けに日本語のカラムを使用したいです。

発生している問題・エラー

パーティションの追加について、振り分けのカラムに日本語を指定すると、以下のエラーが発生します。
ERROR 1300 (HY000): Invalid utf8 character string: '82A282'

該当するソースコード

create table test-a.ああ(いい int,aa int);

alter table test-a.ああ partition by range(いい)(
partition p202011 values less than(2020) engine = innodb);

自分で試したこと

上記のテーブルで日本語でないカラムにパーティションを設定することはできました。

alter table test-a.ああ partition by range(aa)(
partition p202011 values less than(2020) engine = innodb);

(補足)
ユーザー : root
OS : Windows10
バージョン : mysql 8.0

0 likes

1Answer

Comments

  1. @niruniru

    Questioner

    ご回答ありがとうございます。

    以下の通り、試してみたのですが、エラーは解消しませんでした。

    set names utf8 ;

    alter table `test-a`.`ああ` partition by range(`いい`)(
    partition p202011 values less than(2020) engine = innodb);

    ERROR 1300 (HY000): Invalid utf8 character string: '\x82\xA0\x82\xA0'

    「set names utf8 ;」実行時、warningがあったのですが、内容は以下であったため、
    その点は問題ないと考えています。

    'utf8' is currently an alias for the character set UTF8MB3,
    which will be replaced by UTF8MB4 in a future release. Please consider using
    UTF8MB4 in order to be unambiguous.

    もし何か他に心当たりがあれば、教えて頂けると幸いです。
  2. どのような環境で試されているのかにもよると思いますが、例えば、SQLが書かれたテキストがShift-JISになっているとか、端末のコードがShift-JISになっているとか、そういったことはないでしょうか。

    エラーメッセージで検索( https://www.google.com/search?q=ERROR+1300+(HY000)%3A+Invalid+utf8+character+string%3A+%2782A282%27 )すると、
    データのShift-JISコードでエラーするような話も見つかります。
    http://back-number.com/learning/939/mysql_wordcode
  3. @niruniru

    Questioner

    コマンドプロンプトの文字コードがUTF8になっていなかったようで、以下を参考に、以下のコマンドを事前に実行することで、正常に作成することができました。

    chcp 65001

    (参照URL)
    https://qiita.com/shibuchaaaan/items/5c67ffdf1ae5e3a7c287

    ありがとうございました。
  4. 解決して良かったです。

Your answer might help someone💌