2011-10-10 5 views
7

Tengo una columna update_date en una tabla y escriba es timestamp. Establecí el valor de la visita usando el menú desplegable phpmyadmin en CURRENT_TIMESTAMP. Pero más tarde, cuando ejecuto sql UPDATE x SET ... , actualiza la columna de marca de tiempo si solo hay cambios en alguna de las columnas. Lo que me gustaría lograr es si hay un cambio o no se establece la hora actual cada vez que se ejecuta la actualización sql. ¿Hay alguna forma de hacerlo en mysql o tengo que configurar la fecha de actualización explícitamente cada vez que se llama a la actualización?Columna de hora MYSQL actualización automática incluso si no hay cambios?

Gracias

Respuesta

6

Debe actualizar la columna de forma explícita. Desde el manual de MySQL, TIMESTAMP properties:

La columna TIMESTAMP de actualización automática, si lo hay, se actualiza automáticamente a la fecha y hora actual cuando el valor de cualquier otra columna en la fila se cambia desde su valor actual. Si todas las otras columnas están configuradas con sus valores actuales, la columna TIMESTAMP no cambia. La actualización automática no se aplica si a la columna TIMESTAMP se le asigna explícitamente un valor distinto de NULL.

Énfasis mío.

+0

Tengo solo una columna de marca de tiempo en la fila. Entonces dices que debería cambiar el valor predeterminado a nulo y luego actualizarlo explícitamente cada vez que se ejecuta sql o puedo dejar el tipo predeterminado como CURRENT_TIMESTAMP? – akd

+1

La otra cosa es que cuando ejecuto este código nada se actualiza "ACTUALIZAR x SET update_date = NOW()" de mysql_query? ¿Cuál sería la razón? – akd

+0

¡Extremidad muy útil y tramposa! –

Cuestiones relacionadas