sql >> Database >  >> RDS >> Mysql

Wanneer wordt een tijdstempel (automatisch) bijgewerkt?

Geef het commando SHOW CREATE TABLE whatever

Kijk dan naar de tabeldefinitie .

Het heeft waarschijnlijk een regel als deze

logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

in het. DEFAULT CURRENT_TIMESTAMP betekent dat elke INSERT zonder een expliciete tijdstempelinstelling gebruikt de huidige tijd. Evenzo, ON UPDATE CURRENT_TIMESTAMP betekent dat elke update zonder een expliciete tijdstempel resulteert in een update naar de huidige tijdstempelwaarde.

U kunt dit standaardgedrag bepalen bij het maken van uw tabel.

Of, als de tijdstempelkolom in de eerste plaats niet correct is gemaakt, kunt u deze wijzigen.

ALTER TABLE whatevertable
     CHANGE whatevercolumn 
            whatevercolumn TIMESTAMP NOT NULL
                           DEFAULT CURRENT_TIMESTAMP 
                           ON UPDATE CURRENT_TIMESTAMP;

Hierdoor worden zowel INSERT- als UPDATE-bewerkingen op de tabel automatisch bijgewerkt om uw tijdstempelkolom bij te werken. Als je whatevertable wilt updaten zonder de tijdstempel te wijzigen, dat wil zeggen,

dan moet je dit soort update uitgeven.

UPDATE whatevertable
   SET something = 'newvalue',
       whatevercolumn = whatevercolumn
 WHERE someindex = 'indexvalue'

Dit werkt met TIMESTAMP en DATETIME kolommen. (Vóór MySQL versie 5.6.5 werkte het alleen met TIMESTAMP s) Wanneer u TIMESTAMP . gebruikt s, wordt rekening gehouden met tijdzones:op een correct geconfigureerde servermachine worden die waarden altijd opgeslagen in UTC en bij het ophalen vertaald naar lokale tijd.



  1. Kan geen verbinding maken met MySQL-server op 'localhost' (10061) na installatie

  2. Socket-bestand /var/pgsql_socket/.s.PGSQL.5432 ontbreekt in Mountain Lion (OS X-server)

  3. ActionScript Date-object maken van MySQL UTC-tijdstempeltekenreeks

  4. MySQL selecteer DISTINCT op hoogste waarde