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

mysql:8034

From: SUGAWARA Hajime <SUGAWARA Hajime <sugawara@xxxxxxxxxx>>
Date: Wed, 16 Jul 2003 12:26:04 +0900
Subject: [mysql 08034] Re: 強制的に CHAR 型にする方法

 菅原です。

きたぢま <kitajima@xxxxxxxxxx>さんは書きました:
> ANSI SQL互換モードなるものがあれば…と思ってしまったりするわけでした^^
> ;
> (CHAR型は固定長で取り出し時も固定長でという仕様 かつ、VARCHARがテーブ
> ルにあっても、自動的にCHARをVARCHARに変換しない)

 MySQLのドキュメントによるとANSI SQL92ではCHAR型で後ろのスペースをとっ
てもよいことになっているらしい、です。
(というか、厳密に決まっていないんじゃないかな?)

http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_Introduction.html#Open_bugs
> 全ての文字型のフィールド、BLOB と TEXT はのぞいて、は、 検索されるとき
> に最後についているスペースを自動で取り除きます。 CHAR 型ではこれは OK 
> で、この特徴は ANSI SQL92 に従っていると見なされるでしょう。 MySQL 
> Server のバグは、 VARCHAR でも同様に行ってしまうことです
(なお、ここで「バグ」と言っているのは右側をスペースで埋めないことではな
く、VARCHARにデータを入れるときに右側に空白文字があった場合にそれらが削
除されることを意味しています。念のため)

 ANSI SQL92を正確に知らないので、これが正しいのかは分かりませんけど。

 ちょっと調べてみたら、Sybaseあたりはnot nullの時だけスペースを付加して
るみたいですし(もちろんSQL92互換と書かれてます)、このあたりはSQL92では
厳密に定めてないのかもしれません。

 なので、ANSI互換でもきたぢまさんの望まれるようにはならないんじゃないか
な〜? と思います。

-- 
菅原はじめ@ホビー・データ
sugawara@xxxxxxxxxx

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

      8025 2003-07-15 13:18 [きたぢま <kitajima@x] 強制的に CHAR 型にする方法              
      8026 2003-07-15 13:49 ┣[SUGAWARA Hajime <sug]                                       
      8028 2003-07-15 15:30 ┃┗[きたぢま <kitajima@x]                                     
      8029 2003-07-15 18:12 ┃ ┗[Kazuaki Inagaki <ina]                                   
      8032 2003-07-16 11:00 ┃  ┗[きたぢま <kitajima@x]                                 
      8033 2003-07-16 11:05 ┃   ┣[箱田賢一 <hakoda@xxx]                               
      8039 2003-07-16 13:29 ┃   ┃┗[きたぢま <kitajima@x]                             
->    8034 2003-07-16 12:26 ┃   ┗[SUGAWARA Hajime <sug]                               
      8041 2003-07-16 13:33 ┃    ┗[きたぢま <kitajima@x]                             
      8044 2003-07-16 15:00 ┃     ┗[SUGAWARA Hajime <sug]                           
      8048 2003-07-17 11:55 ┃      ┗[きたぢま <kitajima@x]                         
      8043 2003-07-16 14:51 ┗["MIYATSU Kazunari" <]                                       
      8047 2003-07-17 11:47  ┗[きたぢま <kitajima@x]