2012-03-01 6 views
10

Ho una colonna dire ts_activity con datatype timestamp in MYSQL e valore predefinito in timestamp corrente. Voglio aggiungere in aggiornamento applicare il timestamp corrente a questo valore di colonna.Come aggiungere "ON update current timestamp" alla colonna della tabella esistente

Non riesco a ottenere alter query per fare questo. mentre creo una nuova tabella e la sua colonna posso aggiungerla, ma non è possibile modificare la colonna esistente aggiungendo all'aggiornamento applicando il timestamp attuale.

Qualcuno può dirmi la query esatta per gestirlo. Possiamo modificare questo dopo aver creato la tabella.

Grazie

risposta

9

Prova questa ricerca -

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

nota, nella tabella solo campo può essere con l'opzione 'UPDATE CURRENT_TIMESTAMP ON'.

29

Il suggerimento di Devart funzionerà, ma preferisco usare MODIFY COLUMN anziché CHANGE COLUMN se non sto rinominando la colonna.

Inoltre, suppongo che la colonna ts_activity non sia annullabile poiché si dispone di un valore predefinito, quindi lo imposto su NOT NULL, ma dipende da voi.

Questa è la dichiarazione che userei:

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

d'accordo sulla NULL/NOT NULL. Dovrebbe essere specificato com'era prima. – Devart

+0

Grazie a tutti :). Risolto. – Rahul

+0

Come memorizzare il valore di 'CURRENT_TIMESTAMP' durante l'aggiornamento in un fuso orario specifico? –

Problemi correlati