Zadejte příkaz SHOW CREATE TABLE whatever
Pak se podívejte na definici tabulky .
Pravděpodobně má takovouto čáru
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
v něm. DEFAULT CURRENT_TIMESTAMP
znamená, že jakýkoli INSERT
bez explicitního nastavení časového razítka použije aktuální čas. Podobně ON UPDATE CURRENT_TIMESTAMP
znamená, že jakákoli aktualizace bez explicitního časového razítka má za následek aktualizaci na aktuální hodnotu časového razítka.
Toto výchozí chování můžete ovládat při vytváření tabulky.
Nebo, pokud nebyl sloupec s časovým razítkem vytvořen správně, můžete jej změnit.
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
To způsobí, že operace INSERT a UPDATE na tabulce automaticky aktualizují sloupec časového razítka. Pokud chcete aktualizovat whatevertable
beze změny časového razítka, tedy
pak musíte vydat tento druh aktualizace.
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
Toto funguje s TIMESTAMP
a DATETIME
sloupců. (Před verzí MySQL 5.6.5 fungovalo pouze s TIMESTAMP
s) Když používáte TIMESTAMP
s, jsou zohledněny časové zóny:na správně nakonfigurovaném serveru jsou tyto hodnoty vždy uloženy v UTC a po načtení převedeny na místní čas.