Para insertar automáticamente la fecha y la hora, es decir, el timestamp, en un campo de tipo TIMESTAMP en una tabla en MySQL podemos utilizar CURRENT_TIMESTAMP, siempre que estemos utilizando una versión de servidor Mysql superior a la 4.1.
Si se utiliza el timestamp automático en las inserciones, cuando se omita el campo en una inserción, éste tomara el valor de fecha y hora que tenga el servidor en ese momento.
Para esto se debe usar la propiedad DEFAULT CURRENT_TIMESTAMP en la creación del campo. Si se utiliza en las actualizaciones, cuando se produzca una sentencia UPDATE que omita el campo que tiene la propiedad en el timestamp, el campo tomará el valor actual de fecha y hora del servidor.
Para esto se debe usar la propiedad ON UPDATE CURRENT_TIMESTAMP en la creación del campo. Se pueden usar por separado, o combinadas:
Tabla con un campo timestamp que toma un valor de fecha automático tanto en inserciones como actualizaciones
mysql> CREATE TABLE tabla_ejemplo1 (fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
Tabla con un campo timestamp que toma un valor de fecha automático tanto en inserciones pero NO en actualizaciones
mysql> CREATE TABLE tabla_ejemplo2 (fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Tabla con un campo timestamp que toma un valor de fecha automático en actualizaciones pero NO en inserciones
mysql> CREATE TABLE tabla_ejemplo3 (fecha TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);