更新ごとにtimestamp
デフォルトcurrent_timestamp
で更新されるタイプの列を持つテーブルがあります。current_timestamp
この列の「更新時」機能を削除したいと考えています。変更ステートメントはどのように記述すればよいですか?
私は次のことを試しました:
ALTER TABLE mytable alter column time set DEFAULT now();
しかし、これはうまくいきませんでした。
Pete はほぼ正しかったのですが、'change' に対して間違った構文を使用していました。
ALTER TABLE mytable CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
列名を繰り返す必要があることに注意してください。また、単一引用符の代わりに逆引用符を使用して列名の時間をエスケープしていることを確認してください。これにより、時間の mysql 列タイプとして解釈されなくなります。
CURRENT_TIMESTAMP の DEFAULT を指定すると、MySQL は列を自動的に更新しなくなります。MySQLマニュアルから:
DEFAULT CURRENT_TIMESTAMP 句があり、ON UPDATE 句がない場合、列にはデフォルト値の現在のタイムスタンプがありますが、自動的に更新されません。
私の知る限り、デフォルトとして NOW() などの関数を使用することはできません。
試す
ALTER TABLE `mytable` CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
(フィールド名のエスケープと 2 番目の使用を追加するために編集)