2012-03-01 27 views
10

私はカラムにMYSQLのデータ型のタイムスタンプでts_activityと現在のタイムスタンプのデフォルト値を指定します。私はこの列の値に更新適用現在のタイムスタンプを追加したいと思います。既存のテーブルの列に "ON update current timestamp"を追加する方法

これを行うための変更クエリを取得できません。私はそれを追加することができますが、新しいテーブルとその列を作成するが、更新時に現在のタイムスタンプを追加することによって既存の列を変更することはできません。

これを処理する正確なクエリを教えてくれる人がいますか?テーブルを作成した後でこれを変更できますか?

おかげ

答えて

9

は、この文字列で検索してください -

ALTER TABLE table_name 
    CHANGE COLUMN column_name column_name TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; 

注記、テーブルに一つだけのフィールドは、オプション 'UPDATE CURRENT_TIMESTAMP ON' ですることができます。

29

Devartの提案はうまくいきますが、私が列の名前を変更しない場合は、CHANGE COLUMNの代わりにMODIFY COLUMNを使用することをお勧めします。

私はあなたのデフォルト値があるので、あなたのts_activityカラムがヌル値ではないと仮定しています。したがって、それをNOT NULLに設定していますが、それはあなた次第です。

これは、私が使用する文です:

ALTER TABLE your_table 
    MODIFY COLUMN ts_activity TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; 
+1

はNULL/NOT NULLについて同意します。以前と同じように指定する必要があります。 – Devart

+0

ありがとうございました。解決済み。 – Rahul

+0

更新時に 'CURRENT_TIMESTAMP'の値を特定のタイムゾーンに保存する方法は? –

関連する問題