Current TimeStamp en 2 campos con MySQL

Lo que se pretende es guardar en una tabla registros de inicio y finalización de un proceso en campos separados, de esta forma necesitamos que MySQL inserte automaticamente la fecha y hora actual en el campo correspondiente en el momento de hacer un insert, y haga lo propio al hacer update en ese registro, pero en otro campo.

Realmente esto podemos conseguirlo mediante algún lenguaje de programación tipo PHP interactuando con la base de datos, pero en este caso se trata de una base de datos para una aplicación industrial donde los datos los proporciona un autómata mediante un módulo de SQL  con unas funciones muy limitadas, además de que el autómata no posee un reloj interno.

La única solución pasa porque sea el propio gestor de la base de datos el que se encargue de hacerlo, y la buena noticia es que MySQL ya tiene esa funcionalidad a partir de la versión 5.6.

Vamos a crear una tabla de ejemplo para ver cómo se hace, partimos de una estructura sencilla para ver el proceso:

 

 

 

El campo  “fecha_insercion” que, como su nombre indica, guardará la información de la fecha y hora de creación del registro. Simplemente creamos el campo con el tipo “timestamp“, pero es muy importante quitarle el atributo “on update CURRENT_TIMESTAMP” para evitar que no se modifique posteriormente.

El campo “fecha_actualizacion” es de tipo “datetime” y con atributos de “on update CURRENT_TIMESTAMP“.

Ya tenemos nuestra tabla lista para registrar la fecha y hora exacta de la inserción del registro (en nuestro caso el inicio de un proceso generado por el autómata), y la de actualización, que será cuando ese proceso ha finalizado.

Deja un comentario

Tu dirección de correo electrónico no será publicada.