web-dev-qa-db-ja.com

デフォルト値CURRENT_TIMESTAMPのデータ型TIMESTAMPに関するMySQLの不明確

MySQL InnDB engineでデータ型TIMESTAMPのTableColumnを作成し、デフォルト値CURRENT_TIMESTAMPとして配置しましたが、JDBCまたはを使用して更新すると、この値は常にCURRENT_TIMESTAMPに変更されます。 MySQL Administrator GUI、

私の質問は

1)これはデフォルトの機能であり、テーブル設定からCURRENT_TIMESTAMPを削除し、この列を標準的な方法で更新する必要があります。

2)この機能のオン/オフを切り替えることができるオプション/設定はありますか

SQLエンジンはMySQL 5.1.29-rc communityです

2
mKorbel

manual によると、TIMESTAMPは自動初期化、自動更新、両方、またはどちらもできません。明らかな警告はこれです:

DEFAULT句もONUPDATE句もありませんが、DEFAULT CURRENT_TIMESTAMP ON UPDATECURRENT_TIMESTAMPと同じです。

したがって、列にdefault/on update句を明示的に指定しない場合は、両方を実行します。デフォルトまたは自動更新を行わない場合は、デフォルトに「0」を付けます。

ts TIMESTAMP DEFAULT 0
2
Derek Downey