update current_timestamp create column automatic sql mysql datetime audit

current_timestamp - MySQL auto-store datetime para cada fila



timestamp mysql automatic (6)

Bueno, no puedes tener ambas cosas:

documento de mysql:

No es posible que la marca de tiempo actual sea el valor predeterminado para una columna y el valor de actualización automática para otra columna.

Triste, ¿no es así?

Sin embargo, podría usar null en lugar de now () siguiendo este consejo

En MySQL, estoy cansado de agregar las columnas dt_created y dt_modified (que son dt_modified fecha y hora de creación y última modificación, respectivamente) a todas las tablas que tengo en mi base de datos.

Cada vez que INSERT o UPDATE la base de datos, tendré que usar la palabra clave NOW() . Esto va por mi persistencia.

¿Hay alguna alternativa eficiente donde MySQL pueda almacenar automáticamente al menos el tiempo de datos de la fila que se inserta y me permite recuperarlo?


En phpmyadmin puedes establecer

O use esta consulta

ALTER TABLE `tablename` CHANGE `dt_created` `dt_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP


Puede usar restricciones PREDETERMINADAS para establecer la marca de tiempo:

ALTER TABLE MODIFY dt_created datetime DEFAULT CURRENT_TIMESTAMP ALTER TABLE MODIFY dt_modified datetime DEFAULT ON UPDATE CURRENT_TIMESTAMP

Entonces no tendría que especificar NOW() en sus instrucciones INSERT / UPDATE.

Referencia: propiedades TIMESTAMP


Se hizo una pregunta similar aquí " Marca de tiempo para MySQL ", el campo de marca de tiempo se actualizará cada vez que se acceda. También puede considerar un Trigger colocado en la tabla en cuestión para rellenar automáticamente esos campos por usted. Dependiendo del entorno, a algunas tiendas / empresas no les gusta el uso de factores desencadenantes y, por lo tanto, es posible que tenga que buscar soluciones alternativas.


Si usas phpmyadmin , puedes hacerlo de la siguiente manera:


ALTER TABLE `tablename` CHANGE `dt` `dt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

debería ser el código correcto.