• ベストアンサー

MySQLで日付(date)型のdefaultの設定

DATE型のdefaultの設定は 0000-00-00 となってしまうのですが、 システム日付を設定することは 出来ないのですか?

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

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.2

MySQL(Ver4.x)では、デフォルト値に定数しか指定できないようですので、システム日付などをデフォルト値に指定するのは無理なようです。 http://www.mysql.gr.jp/Manual/mysql-4.00.12/manual.ja_Reference.html#CREATE_TABLE ただし、TIMESTAMP型にすれば、値を自動更新することはできます。(一つのテーブルにつき一つまでですが) http://www.mysql.gr.jp/Manual/mysql-4.00.12/manual.ja_Reference.html#DATETIME 例)  up_date TIMESTAMP(8) このばあい、そのフィールドの値を指定しなければ、UPDATEなどの際にも自動更新されてしまうので、ご注意下さい。

rabu_chihaha
質問者

お礼

ありがとうございます。 最終更新日を記録したいだけでしたので、 TIMESTAMPで十分です。

その他の回答 (1)

回答No.1

質問の意図がいまいちはっきりしませんが、 型は型なのでこれで合っていると思います。 現在の日付をセットしたいということでしたら、 update foo set birthday = NOW(); などとすると良いです。

rabu_chihaha
質問者

補足

すみません。 テーブル作成時に出来ないでしょうか? 例えば create table abc( id char(5), price int default 1 udate date ); priceのようにdefaultで INSERTされた時に、特に指定がない場合 現在の日付をセットできませんか?