mysql:9524
From: yyuji <yyuji <yyuji@xxxxxxxxxx>>
Date: Wed, 02 Jun 2004 18:07:32 +0900
Subject: [mysql 09524] Re: UTF-8でのUpdate
山口です。 結果的に以下のとおりでした。 ・MySQLの設定 (my.iniの設定) [mysqld] default_character-set=latin1 ・データベースの設定 (Create database時の設定) DEFAULT CHARACTER SET latin1 ・カラムのキャラクターセット TX_NAME:utf8 TX_UID :latin1 以上の設定でJDBC経由で正常にupdateするには、 ・コネクションストリングの指定 useUnicode=true&characterEncoding=utf8 ・実行前処理 ステートメントで execute("set character set utf8") 実行しておく ・SQL文の整形 utf8を使用するカラムに対して N または _utf8 のキャラクタイントロデューサーを指定する。 例) update tbl_test set tx_name = N'" + buf_name.toString() + "' where TX_UID = '" + uid + "'; または、 update tbl_test set tx_name = _utf8'" + buf_name.toString() + "' where TX_UID = '" + uid + "'; 以上です。 yasuyuki@xxxxxxxxxx wrote: >えんどう やすゆき です。 > >> 本件、カラムによってcharacter set が違っていたことが原因だったようです。 >> >> update tbl_test set tx_name = '" + buf_name.toString() + "' >> where TX_UID = '" + uid + "'; >> >> 上記の >> tx_name はutf8 >> >> TX_UID はlatin1 でした。 >> >> よって、where句で"Illegal mix of collations"が発生する結果となっていました。 > >SET 句で charactor set を明示的に指定するとどうなるのでしょうか...? > >http://dev.mysql.com/doc/mysql/ja/SET_OPTION.html > > >-- >ENDO Yasuyuki <yasuyuki@xxxxxxxxxx> >http://www.kahua.org/ >http://www.timedia.co.jp/ > >
9484 2004-05-31 18:41 [yyuji <yyuji@xxxxxxx] UTF-8でのUpdate 9485 2004-05-31 19:16 ┣[<yasuyuki@xxxxxxxxxx] 9486 2004-05-31 19:35 ┃┗[yyuji <yyuji@xxxxxxx] 9487 2004-05-31 20:01 ┃ ┗[<yasuyuki@xxxxxxxxxx] 9499 2004-06-01 10:38 ┃ ┗[yyuji <yyuji@xxxxxxx] 9503 2004-06-01 12:59 ┃ ┗["HIROSE, Masaaki" <h] 9504 2004-06-01 13:18 ┃ ┣[yyuji <yyuji@xxxxxxx] 9505 2004-06-01 13:35 ┃ ┗["TAKAHASHI, Tomohiro] 9500 2004-06-01 11:18 ┗[ML account <ml@xxxxx] 9506 2004-06-01 13:41 ┗[yyuji <yyuji@xxxxxxx] 9510 2004-06-01 16:51 ┣[<yasuyuki@xxxxxxxxxx] 9513 2004-06-01 19:56 ┃┗[yyuji <yyuji@xxxxxxx] 9516 2004-06-01 20:25 ┃ ┗[<yasuyuki@xxxxxxxxxx] -> 9524 2004-06-02 18:07 ┃ ┗[yyuji <yyuji@xxxxxxx] 9511 2004-06-01 17:16 ┗[ML account <ml@xxxxx] 9514 2004-06-01 19:58 ┣[yyuji <yyuji@xxxxxxx] 9515 2004-06-01 20:22 ┗[yyuji <yyuji@xxxxxxx]