[前][次][番号順一覧][スレッド一覧]

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]