subconsulta - MySQL: Actualizando entrada SIN actualizar la marca de tiempo
update masivo mysql (5)
Tengo una marca de tiempo en una tabla mysql con el atributo "ON UPDATE CURRENT_TIMESTAMP". ¿Hay alguna manera de desactivar manualmente la actualización de la marca de tiempo en una ocasión especial? (por ejemplo: actualizar la entrada para revisar una publicación de blog, pero no para volver a ponerla)
¿Hay alguna manera de desactivar manualmente la actualización de la marca de tiempo en una ocasión especial? (por ejemplo: actualizar la entrada para revisar una publicación de blog, pero no para volver a ponerla)
Parece que necesita configurar la restricción predeterminada para que rellene la columna solo en la inserción:
DEFAULT CURRENT_TIMESTAMP
Si se cambia solo para que sea así, cualquier revisión no activará el valor de la marca de tiempo que se actualizará. IE: Si creó el blogpost ayer y corrigió un error tipográfico hoy, la fecha en la columna aún sería para ayer.
No use marcas de tiempo, pero rastree los tiempos manualmente.
Si realmente desea actualizar un registro y no actualizar su uso de marca de tiempo:
UPDATE `table` SET `timestamp` = `timestamp`, `col` = ''new data'' …;
Para hacer su tabla / marca de tiempo de actualización automática:
ALTER TABLE myTable
CHANGE myTimestampColumn
myTimestampColumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
Para que no se actualice automáticamente:
ALTER TABLE myTable
CHANGE myTimestampColumn
myTimestampColumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP;
NOTA: La parte "default current_timestamp" solo la establece en el sello actual en el momento predeterminado, ya que el campo no es nulo. Puede eliminar tanto el valor nulo como el valor predeterminado, si lo desea.
Puede establecer manualmente el valor de la columna a su valor actual en el comando de actualización:
UPDATE table SET x=y, timestampColumn=timestampColumn WHERE a=b;
Si no establece el valor en la consulta, se actualizará a la marca de tiempo actual según la definición de la tabla.
Si cambia la marca de tiempo en la actualización, debe tener en cuenta que si el valor se actualizó pero no se modificó (se guardó el valor guardado), entonces no se actualizará "on update Current_timestemp" y en esta situación, debe configurar la fecha y hora. a mano
SET LastUpdatedDate=NOW() WHERE
La idea surgió de aquí: toque el registro MYSQL para actualizar el campo TIMESTAMP