バージョン4と5のvarcharの違い

 MySQLバージョン4.0と5.0 で varchar の扱いが変わっているようだ。
バージョン4では varchar(n) は nバイトの領域を確保だったのが、
バージョン5では n文字分を格納可能になっている。
4.1は動作環境を作れなかったため未確認だが、4.1.1で変わったと思われる。
バージョンアップ時には(特にクライアントでvarcharのサイズにあわせて領域確保している場合は)要注意。


 以下のSQLで確認できる。

create table varchartest (name varchar(6));

insert into varchartest values ("あいう");
insert into varchartest values ("あいうえおか");
insert into varchartest values ("あいうえおかきく");

 実行結果:
select * from varchartest;
4.0

                  • +
name
                  • +
あいう
あいう
あいう
                  • +


5.0

                              • +
name
                              • +
あいう
あいうえおか
あいうえおか
                              • +

Windows2000上で、mysqlクライアントはそれぞれのバージョンのものを使用して確認。