Using TIMESTAMP to Track Row Modification Times
Problem
You want a row’s creation time or last modification time to be recorded automatically.
Solution
Use the TIMESTAMP
data type,
which has auto-initialization and auto-update properties.
Discussion
MySQL supports a TIMESTAMP
data type that stores date-and-time values. Earlier sections covered
the range of values for TIMESTAMP
(Choosing a Temporal Data Type) and the conversion of
TIMESTAMP
values to and from UTC when they are stored and retrieved (Setting the Client Time Zone). This section focuses
on how TIMESTAMP
columns enable you
to track row creation and update times automatically:
One
TIMESTAMP
column in a table can be treated as special in either or both of the following ways:The column is automatically initialized to the current date and time when new rows are created. This means you need not specify its value at all in an
INSERT
statement; MySQL initializes it automatically to the row’s creation time. (This also occurs if you set the column toNULL
.)The column is automatically updated to the current date and time when you change any other column in the row from its current value. The update happens only if you actually change a column value; setting a column to its current value doesn’t update the
TIMESTAMP
.This auto-update property sometimes surprises people who don’t realize that changing another column also updates the
TIMESTAMP
column. This will never surprise you, of course, because you’re aware of it!
There can be multiple ...
Get MySQL Cookbook, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.