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

mysql:2312

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Wed, 26 Jul 2000 11:54:15 +0900
Subject: [mysql 02312] Re: Enum

とみたです。

At Tue, 25 Jul 2000 19:35:36 -0300,
fumitada <fumitada@xxxxxxxxxx> wrote:

> あるカラムをEnum型で宣言したのですが、なぜかNullが入ります。
> create table test(
> company enum('yes','no') default 'yes');
> としたのですが、
> insert into test values('');
> として、結果を見てみたらNullになってしまいます。(空白になっています)
> defaultでyesになっているのに、なぜこうなるのでしょうか?
> バグですか?

SQL では NULL と空文字列は異なります。で、

http://www.mysql.gr.jp/jpdoc/3.23/manual.ja_Reference.html#ENUM

| 値はある状況下では 空文字 ("") か NULL を取ることがあります: 
| 
| ・もし ENUM に無効な値 (列挙されている値の中に含まれない文字) を 代入し
|   た場合、 そのエラーになる文字の代わりに空文字が挿入されます。
| 
| ・もし ENUM が NULL と定義された場合, NULL はそのフィールドで 許可される
|   値となり、デフォルト値が NULLになります。 もし ENUM が NOT NULL と定義
|   されたならば、 デフォルト値は、 列挙リストの最初の値になります。

ということです。

--
とみたまさひろ <tommy@xxxxxxxxxx> http://www.tmtm.org
日本MySQLユーザ会 http://www.mysql.gr.jp

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

      2282 2000-07-20 15:30 [Naofumi Kondoh <nkon] 7/22 『 PHP カンファレンス 2000 』 ( 無料) 開催のご案内
      2283 2000-07-21 12:32 ┗["Akinobu Yamamoto" <] mysql が起動しません                  
      2310 2000-07-26 07:35  ┗[fumitada <fumitada@x] Enum                                
      2311 2000-07-26 11:47   ┣[NAKAJIMA Mutsuki <mu]                                   
->    2312 2000-07-26 11:54   ┗[とみたまさひろ <tomm]