2011-10-10 10 views
7

Ho una colonna update_date in una tabella e type is timestamp. Ho impostato il valore del deault utilizzando il menu a discesa phpmyadmin su CURRENT_TIMESTAMP. Ma più tardi, quando eseguo sql UPDATE x SET ... aggiorna la colonna timestamp se solo c'è una modifica in una qualsiasi delle colonne. Quello che mi piacerebbe ottenere è che ci sia una modifica o meno dell'impostazione dell'ora corrente ogni volta che viene eseguito l'aggiornamento di SQL. C'è un modo per farlo in mysql o ho bisogno di impostare il update_date esplicitamente ogni volta che viene chiamato l'aggiornamento?Aggiornamento automatico della colonna timestamp MYSQL anche se non ci sono modifiche?

Grazie

risposta

6

È necessario aggiornare in modo esplicito la colonna. Dal manuale MySQL, TIMESTAMP properties:

la colonna timestamp aggiornamento automatico, se presente, viene aggiornato automaticamente al timestamp corrente quando il valore di qualsiasi altra colonna nella riga viene modificato dal valore corrente. Se tutte le altre colonne sono impostate sui valori correnti, la colonna TIMESTAMP non cambia. L'aggiornamento automatico non si applica se alla colonna TIMESTAMP viene assegnato esplicitamente un valore diverso da NULL.

Enfasi mia.

+0

Ho una sola colonna timestamp nella riga. Quindi dovresti cambiare il valore predefinito in null e quindi aggiornarlo esplicitamente ogni volta che viene eseguito sql o posso lasciare il tipo predefinito come CURRENT_TIMESTAMP? – akd

+1

L'altra cosa è che quando eseguo questo codice non viene aggiornato nulla "UPDATE x SET update_date = NOW()" da mysql_query? quale sarebbe la ragione? – akd

+0

Suggerimento molto utile e difficile! –

Problemi correlati