In MySQL 5.6.5 ci sono diversi aggiornamenti riguardanti questa inizializzazione, puoi vedere su questo collegamento (Proprietà del timestamp automatico prima di MySQL 5.6.5).
Se stai usando MySQL <=5.6.5 , per ignorare questa inizializzazione è necessario impostare il valore DEFAULT su 0 o NULL con NULL consentito.
CREATE TABLE tbl
(
field1 TIMESTAMP DEFAULT 0,
field2 TIMESTAMP NULL DEFAULT NULL
)
Se stai usando MySQL>=5.6.6 , esiste un parametro chiamato explicit_defaults_for_timestamp che è disabilitato per impostazione predefinita. Puoi abilitare questa impostazione o impostare il valore DEFAULT su 0 o NULL, stesso approccio per le versioni precedenti di MySQL.
Se stai usando MySQL>=8.0.2 , quindi explicit_defaults_for_timestamp
è abilitato per impostazione predefinita. Questo disabilita il comportamento non standard (per fortuna). Inoltre, MySQL genera un avviso quando si disabilita questa impostazione. Quindi, ad esempio, se non definisci il valore DEFAULT per un TIMESTAMP
colonna, viene automaticamente impostato su NULL
.