MySQL でテーブル作成時に、 date 型カラムのデフォルト値を sysdate に設定しようとすると

ERROR 1067 (42000): Invalid default value for ‘xxx’


調べてみると、MySQL ではデフォルト値は定数のみ設定できる仕様になっているようだ。

MySQL 5.1 Reference Manual :: 10 Data Types :: 10.1 Data Type Overview :: 10.1.4 Data Type Default Values

10.1.4. Data Type Default Values
The DEFAULT value clause in a data type specification indicates a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE.

マニュアルを読むと、処理日時を設定したい場合は timestamp 型を使えと書いてある。
(Oracle だと “カラム名 date default sysdate” とすればよい)

定数しか使えない仕様には納得がいかない人も多いるようで、 Bug #27645 Datetime field does not accept default NOW() というオープンチケット/フィーチャーリクエストに実装を求める人たちが、たくさんコメントをつけている。

Tagged with: , , , ,
Posted in database

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

  • RT @__apf__: How to write a research paper: a guide for software engineers & practitioners.… /cc @inwyrd 6 months ago
  • RT @HayatoChiba: 昔、自然と対話しながら数学に打ち込んだら何かを悟れるのではと思いたち、専門書1つだけ持ってパワースポットで名高い奈良の山奥に1週間籠ったことがある。しかし泊まった民宿にドカベンが全巻揃っていたため、水島新司と対話しただけで1週間過ぎた。 それ… 6 months ago
  • RT @googlecloud: Ever wonder what underwater fiber optic internet cables look like? Look no further than this deep dive w/ @NatAndLo: https… 6 months ago
  • @ijin UTC+01:00 な時間帯で生活しています、、、 1 year ago
  • RT @mattcutts: Google's world-class Site Reliability Engineering team wrote a new book:… It's about managing produc… 1 year ago
%d bloggers like this: