質問: **MySQLでsql_modeがSTRICT_TRANS_TABLESの時、int型カラムのデフォルト値をどう指定すれば良いですか?** DBへデータ挿入する際、「int型カラムへ挿入する値が未入力の時」にも対応したいです * 案1.「NULL」。NULLは取り扱いが難しい印象があるので、敬遠していたのですが...。未入力という意味からすればNULLが適当ですか? * 案2.「0」。MySQLで0に特別な意味はありますか? * 案3.「決め打ちで好きな数値」。999 や -1 など その他の案は何かありますか?
回答: `NULL` 許容な `int` なら、操作員がデータを入れなかったのだから `NULL` っす。 `NOT NULL` であるなら何らかの入力が必須なので考えるまでもない。 好きな値=意味のない値=後から利用しようとして困る値を格納するくらいなら `NULL` のほうが1000倍どころか無限にマシ。0も同様。 # 年齢の欄が未記入だったとして0歳を採用するくらいなら不明のほうがまだ役に立つ。 # んで、年齢なんて毎日違うので、それなら生年月日のほうが使いやすいとかは以下略