プロフィール

 

名前
ぶりぶり
職業
貧しいスクリプター
役職
名ばかり管理職
 

アーカイブ

 
 

最近のコメント

 

ああ~2009/6/27 3:44
[ 自分 ] さん

 

char、varcharのMAX_LEN

 
ぼ~っとしてるとついやってしまう…。
char(9)は9文字の固定長文字列ですが、何かの本にchar(n)はn*MAX_LEN byteの文字列が格納できると書いてあった。

utf8のキャラクターセット(MAX_LEN=3)だと
'123456789' = 9文字 = 9byte
'あいうえおかきくけ' = 9文字 = 27byte
でしょ。
1byte文字の場合は、まだ入るじゃん!
と思って
'123456789123456789123456789' = 27文字 = 27byte
で、入れると
'123456789'になる…。

au:601にゃんでぇ。本の嘘つきぃ
結局、n文字ってコトね。

でもさぁ、固定長文字列だからデータが9byteか27byteかって大きな違いじゃない?固定長でしょ!
データは27byte分確保してるのにあまるじゃん

実害として、ブログのタイトルでデザイン的に「日本語20文字だな」って思ってvarchar(20)にして、←(余裕を持てよ)
たまたま、1バイト文字(英語)だけのタイトルを付けようとしたら切られた…。