MySQL 5.1.67環境です。 タイトルの通りなのですが、MySQLマニュアルのTIMESTAMPの説明を読んでみると、 NOT NULL制約に関して気になる記述がありました。 MySQLマニュアルのTIMESTAMPの説明 MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 6.3.1.1 TIMESTAMP の特性によると、 TIMESTAMP カラムはデフォルトで NOT NULL になっているため、NULL 値を含めることはできません。NULL を指定すると、現在のタイプスタンプが割り当てられます。 だそうです。 さらっと書いてるけど、NOT NULL制約がエラーチェックに使えないってことじゃないか。 実際、 MySQLのTIMESTAMPカラムをNOT NULLで定義しても、NULLのINSERT/UPDATEを実行すると現在時刻になってしまいます。 これ