- ベストアンサー
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を登録(何も値を入れない)したいのですが、 どうすればよいでしょうか。 ご存知の方いらっしゃいましたらご教示願います。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
insert into tbl_tst values (001,'',21000, NULL ,22,4400,'3~4日','∞') です
その他の回答 (1)
- naochancom
- ベストアンサー率61% (41/67)
#1さんの要領でOKだと思います。 デフォルト値を適用したいのであれば、フィールド名を明示的に 記載すればOKです。 insert into tbl_tst (field1,field2,field3,field5,field6,field7,field8) values (001,'',21000,22,4400,'3~4日','∞'); のように、設定する項目だけフィールドを指定してください。
お礼
御回答ありがとうございます。 フィールド名を省くには、全フィールドに値なりNULLなり明示的に何かを入れなければいけなく、 セットするvalue値を省くには、必要なフィールド名を記載しなければならないのですね。 ありがとうございました。
お礼
早々の御回答をありがとうございます。 なるほど、「値を入れない」時でも 明示的にNULLを「入れる」ことをしなければならないのですね。 確かにNULLを入れたらエラーはなくなりました。 ありがとうございます。