• ベストアンサー

int型フィールドにnullを登録できない・・・

> insert into tbl_tst values (001,'',21000,,22,4400,'3~4日','∞') とすると syntax error になってしまいます。 > insert into tbl_tst values (001,'',21000,'',22,4400,'3~4日','∞') とすると out of range になってしまいます。 > insert into tbl_tst values (001,'',21000,0,22,4400,'3~4日','∞') は通常に登録できます。 > insert into tbl_tst values (001,'',21000,'0',22,4400,'3~4日','∞') も通常に登録できます。 4カラム目のフィールドなのですが、show fields で見ても int(11) Null→YES  Default→NULLとなっております。 NULLを登録(何も値を入れない)したいのですが、 どうすればよいでしょうか。 ご存知の方いらっしゃいましたらご教示願います。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

insert into tbl_tst values (001,'',21000, NULL ,22,4400,'3~4日','∞') です

Claudia
質問者

お礼

早々の御回答をありがとうございます。 なるほど、「値を入れない」時でも 明示的にNULLを「入れる」ことをしなければならないのですね。 確かにNULLを入れたらエラーはなくなりました。 ありがとうございます。

その他の回答 (1)

回答No.2

#1さんの要領でOKだと思います。 デフォルト値を適用したいのであれば、フィールド名を明示的に 記載すればOKです。 insert into tbl_tst (field1,field2,field3,field5,field6,field7,field8) values (001,'',21000,22,4400,'3~4日','∞'); のように、設定する項目だけフィールドを指定してください。

Claudia
質問者

お礼

御回答ありがとうございます。 フィールド名を省くには、全フィールドに値なりNULLなり明示的に何かを入れなければいけなく、 セットするvalue値を省くには、必要なフィールド名を記載しなければならないのですね。 ありがとうございました。