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

mysql:15377

From: SAKAI Kei <SAKAI Kei <sak2@xxxxxxxxxx>>
Date: Fri, 20 Aug 2010 22:10:41 +0900
Subject: [mysql 15377] Re: int column への2147483648

坂井です

  sumiya さん、こんにちは。横から失礼します。
  
> 5.1.xになって、columnの型がunsignedに変わり、  
 
  の部分がとても気になりました。
  バージョンアップをする過程のどこかで、signed int が
  unsigned int になる操作が入ってしまったのだと推測し
  ていますが、心当たりはあるでしょうか。
  
  推測ついでにもうひとつ書くと、
  おそらく 5.0.47 でも unsigned int にしたテーブルで
  同様の操作をすると、同じ結果(0)になると思います。
  処理結果のコードを見ると、Code:1264 の Warning が
  帰ってきていませんか。メッセージはこんな感じです。

    Out of range value adjusted for column 'c1' at row 1
  
  これは、unsigned のカラムに負の数字を与えたときに
  値がゼロに切り捨て(?)られたために出る警告です。
  
    INSERT INTO t VALUES (-2147483648);
  
  という文を、signed 型カラムのテーブルに対して実行すれば
  -2147483648 が登録されるし、
  unsigned型のテーブルに対して実行したら 0 になります。
  
  この切り捨てが起きないようにする方法も、最近出た奥野さん
  の本に出ていましたね。(SQL MODE の話)


Thank you
On Fri, 20 Aug 2010 08:23:53 +0900 (LMT)
Etsuo SUMIYA <sumiya-e@xxxxxxxxxx> wrote:
> sumiyaといいますす。お世話になっております。
> 
> From: Mikiya Okuno <mikiya.okuno@xxxxxxxxxx>
> Subject: [mysql 15375] Re: int column への2147483648
> Date: Thu, 19 Aug 2010 21:50:03 +0900
> Message-ID: <4C6D287B.3010009@xxxxxxxxxx>
> 
> > bind[0].is_unsigned = 1にしましょう。
> > そうしないと符号付き32ビット整数の最大値=2147483647に
> > 引っかかってしまいます。
> 
> うーん!そうだったんですか?確かに、マニュアルを見ると、記載があり
> ますが、サンプルコーディングには記載がないので、見落としました。
> 
> アプリを修正してみたところ、動作しました。
> 
> 実は、このアプリ、5.0.24aの頃から使っているアプリなんですが、手元
> の環境(5.0.47)では、show create table の結果は、
> 
> CREATE TABLE `t` (
>   `c1` int(11) default NULL
> ) ENGINE=MyISAM DEFAULT CHARSET=sjis
> 
> int がsignedで定義され、先のアプリを実行すると、
> 
> mysql> select * from t;
> +-------------+
> | c1          |
> +-------------+
> |  2147483647 |
> | -2147483648 |
> +-------------+
> 2 rows in set (0.03 sec)
> 
> となり、書き込みが行えます。5.1.xになって、columnの型がunsignedに
> 変わり、is_unsigned = 1としないといけなくなったということでしょう
> か?
> 
> アプリの修正を行います。ありがとうございました。
> 
> 
> 



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

     15374 2010-08-19 20:46 [Etsuo SUMIYA <sumiya] int column への2147483648               
     15375 2010-08-19 21:50 ┗[Mikiya Okuno <mikiya]                                       
     15376 2010-08-20 08:23  ┗[Etsuo SUMIYA <sumiya]                                     
->   15377 2010-08-20 22:10   ┗[SAKAI Kei <sak2@xxxx]                                   
     15378 2010-08-21 10:39    ┗[Etsuo SUMIYA <sumiya]                                 
     15379 2010-08-21 18:31     ┗[SAKAI Kei <sak2@xxxx]                               
     15381 2010-08-24 08:56      ┗["Watanabe Tomoyuki" ]