MySQL InnDB engine
でデータ型TIMESTAMP
のTableColumnを作成し、デフォルト値CURRENT_TIMESTAMP
として配置しましたが、JDBCまたはを使用して更新すると、この値は常にCURRENT_TIMESTAMP
に変更されます。 MySQL Administrator GUI、
私の質問は
1)これはデフォルトの機能であり、テーブル設定からCURRENT_TIMESTAMP
を削除し、この列を標準的な方法で更新する必要があります。
2)この機能のオン/オフを切り替えることができるオプション/設定はありますか
SQLエンジンはMySQL 5.1.29-rc community
です
manual によると、TIMESTAMPは自動初期化、自動更新、両方、またはどちらもできません。明らかな警告はこれです:
DEFAULT句もONUPDATE句もありませんが、DEFAULT CURRENT_TIMESTAMP ON UPDATECURRENT_TIMESTAMPと同じです。
したがって、列にdefault/on update句を明示的に指定しない場合は、両方を実行します。デフォルトまたは自動更新を行わない場合は、デフォルトに「0」を付けます。
ts TIMESTAMP DEFAULT 0