スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MySQL4と5でのunsignedの扱いの違い

ここんとこ、MySQL4で稼動させていたサービスをMySQL5に切り替えていたりするんですが、そんな中でちょっとした問題が。

int系のカラムでは「unsigned」というカラムのオプションが設定出来ます。
このオプションを設定すると、そのカラムではマイナスの値が扱えません。が、その代わり使用出来る最大の数値が約2倍になります。

その他に、マイナスの値が代入されようとした場合にはその値を0にしてくれます。

というのはMySQL4の話。

MySQL5では、どうやら仕様が変わったみたいで、0にしてくれません。多分だけど、その型の最大値になります。

つまり、tinyint(3)とした場合に-1が入ると255?256?まぁその辺の数値になっちゃう。

今までは勝手に0にしてくれていたので、プログラム側での入力チェックを怠ってもまあ大丈夫だろう的な部分があったんだけど、MySQL5からはそうもいかないなぁ。
スポンサーサイト

この記事のトラックバックURL

http://kgworks.blog47.fc2.com/tb.php/83-e448a519

コメント

マイナス値が入った時チェックを入れてゲフンゲフン・・・
マイナスどうこうってよりも、1以上50未満みたいな範囲指定のvalidatorを作る方が効率的かなぁ。
範囲外だったらエラー出すみたいな感じで。

コメントする

管理者にだけ表示を許可する

Template Designed by DW99

テクノラティ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。