mysql カラムの暗黙的な変更

| | コメント(0)

p0t: カラムの暗黙的な変更

この記事を読んだ時、ガビーン!と衝撃を受け、こんな大事な事を知らないで使っていた自分に驚きました。

でもちょっとテストしてみたら検索では特に問題は起きなそうな気がしてきました。


+---------+-------------------------
| Table | Create Table
+---------+-------------------------
| address | CREATE TABLE `address` (
`zip1` char(3) default NULL,
`zip2` varchar(4) default NULL,
`address` text
) TYPE=MyISAM |
+---------+-------------------------
1 row in set (0.00 sec)

というテーブルで

insert into address values('35',NULL,'埼玉');

というデータを入れると
実際は zip1がchar(3) なので 35[スペース] というデータになるけど、
select * from address where zip1 = '35';
というsqlを発行しても 上記のデータは取り出せる。
スペースは無視されるのか?

関係ないけど以前postgres で char型を扱った時は上記のsqlだとヒットしなかった気がするのだけど、今の7.x で試してみたらヒットするみたい。


なんか問題なさそうと思いかけたんだけど、取り出した値に 空白がついてくるのか?
やっぱりもうちょっと調べてみよう。

カテゴリ

 

コメントする

このブログ記事について

このページは、が2005年9月23日 02:23に書いたブログ記事です。

ひとつ前のブログ記事は「mysqladmin メモ」です。

次のブログ記事は「携帯の入力形式を出力するsmartyプラグイン」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。