Condividi
Aggiungere ed aggiornare automaticamente una colonna timestamp in MySql
Vorrei aggiungere ad una tabella MySql un campo (colonna) di tipo timestamp che riporti la 'data' in cui un record viene inserito o aggiornato, così da avere traccia del momento in cui è avvenuta l'ultima modifica, e far si che il timestamp si aggiorni in automatico, è possibile farlo? Grazie.
In Corso
1
MySql
13-07-2018
1 Risposta
5292 Visite
+1
Risposte ( 1 approvate )
Certo che puoi farlo, in MySql il timestamp rientra tra i tipi specializzati per la gestione del tempo e delle date, e non di rado viene appunto utilizzato per tenere traccia dell'inserimento o modifica di un record come nel tuo caso.
Se la tua tabella è già esistente puoi usare ALTER per aggiungere il tuo campo timestamp, in questo modo:
questa istruzione sql ti permette non solo di aggiungere la colonna 'last_modified' di tipo timestamp alla tua tabella ma anche che questo campo si aggiorni automaticamente (e non sia mai NULL) all'inserimento di un nuovo record o all'aggiornamento di esso, avendo così sempre il momento esatto di quando è avvenuto l'ultimo intervento su quel record.
Il tipo timestamp in MySql è un formato per esprimere la data ed il tempo, di default (a meno di non specificare una lunghezza diversa) è AAAAMMDDOOMMSS che come si intuisce è composto da 14 cifre numeriche indicanti anno, mese, giorno, ora, minuti e secondi, sta poi a te sviluppatore/programmatore attraverso le opportune formattazioni di data di MySql o direttamente in linguaggio di programmazione tipo php visualizzarla nel formato data a te più congeniale.
N.B. E' bene precisare che il formato timestamp parecchio usato nelle vecchie versioni di MySql è deprecato dalla versione 5.6 (se ricordo bene), e se ne sconsiglia fortemente l'uso a favore di DATETIME, pertanto ti consiglio di implementare lo stesso meccanismo di tracciamento della modifica dei records con il tipo DATETIME (puoi farlo benissimo) e tutt'al più utilizzare la funzione
UNIX_TIMESTAMP(yuor_datetime)
nelle tue SELECT per avere il valore data e tempo nel formato timestamp se magari non volessi cambiare la tua logica di programmazione incentrata su qu