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? (p. ej .: actualizar la entrada para revisar una publicación de blog, pero no volver a fecharla)MySQL: Actualizando la entrada SIN actualizar la marca de tiempo
Respuesta
¿Hay alguna forma de desactivar manualmente la actualización de la marca de tiempo en una ocasión especial? (Por ejemplo: la actualización de la entrada para revisar un blog, pero no para volver a fecha)
Suena como que necesita para configurar la restricción predeterminada para que se rellena la columna de la inserción solamente:
DEFAULT CURRENT_TIMESTAMP
Cambiarlo solo significa que cualquier revisión no activará el valor de la marca de tiempo para actualizarse. IE: Si creó la publicación de blog ayer, y corrigió un error tipográfico hoy, la fecha en la columna seguirá siendo para ayer.
No utilice marcas de tiempo, pero registre los tiempos manualmente.
si realmente desea actualizar un registro y no actualiza su uso marca de tiempo:
UPDATE `table` SET `timestamp` = `timestamp`, `col` = 'new data' …;
"no utilice marcas de tiempo", ¿por qué? – Petah
Quisiera una respuesta a la pregunta de @ Petah, también ... – ryvantage
Solo pueden representar los tiempos del 1.1.1970 al 31.12.2037; solo la primera columna de marca de tiempo se actualiza automáticamente; cuando la restauración de una fecha y hora de respaldo se ajusta a la zona horaria local. Y, dependiendo de su aplicación, es posible que no desee tener esa columna actualizada cuando ejecuta una declaración de actualización sql en su backand (solo desea que la marca de tiempo se actualice al usar su frontend para editar datos) – knittl
Puede ajustar 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.
Aunque esto funciona, este enfoque es más lento que eliminar la regla sobre la actualización del valor. – Mikhail
"más lento" - ¿cuánto? Más tiempo de lo que le toma al OP para eliminar la magia 'ON UPDATE', agregue' NOW() 'a todas sus otras consultas y vuelva a probar su aplicación. – Andy
Cuánto más lento depende del número de filas que está actualizando. Si está trabajando con registros del sistema con literalmente millones de filas, entonces no solo es lento, sino que es lento cada vez que ejecuta esa consulta. No sugiero eliminar el valor 'DEFAULT'; solo el 'ACTUALIZADO ' – Mikhail
Para hacer su mesa/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 sea no de actualización automática:
ALTER TABLE myTable
CHANGE myTimestampColumn
myTimestampColumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP;
NOTA: El "default current_timestamp" parte sólo conjuntos al sello actual en el tiempo predeterminado, ya que el campo no es nulo. Puede eliminar tanto el no nulo como el predeterminado, si lo desea.
Si cambia el timestemp en la actualización, debe tener en cuenta que si el valor se actualizó pero no se modificó (se actualizó el valor guardado), no se actualizará "en la actualización Current_timestemp" y en esta situación debe establecer el timestemp manualmente
SET LastUpdatedDate=NOW() WHERE
la idea surgió de aquí: Touch MYSQL record to update TIMESTAMP field
- 1. Obteniendo la marca de tiempo usando MySQL
- 2. entrada MySQL duplicado para la tecla ACTUALIZAR
- 3. UNIX Marca de tiempo para MySQL DATETIME
- 4. MySQL marca de tiempo sólo en crear
- 5. obtener los registros de la última marca de tiempo mysql
- 6. mysql almacena automáticamente la creación de registros marca de tiempo
- 7. inserte la marca de tiempo actual en mysql con php?
- 8. mySQL SELECT marca de tiempo (ahora() - 3000);
- 9. MySQL inserción de marca de tiempo retardado
- 10. Actualizar la marca de tiempo de MySQL incluso si los datos de la fila no han cambiado
- 11. Actualizar un objeto a Azure Table Storage: ¿hay alguna manera de obtener la nueva marca de tiempo?
- 12. Convirtiendo la marca de tiempo local a la marca de tiempo UTC en Java
- 13. convertir la fecha a la marca de tiempo en javascript?
- 14. Convertir la marca de tiempo mysql a la hora de la época en python
- 15. MySQL Query para eliminar filas cuya marca de tiempo es anterior a la marca de tiempo actual
- 16. ¿Cómo convertir el tiempo de MySQL a la marca de tiempo UNIX usando PHP?
- 17. Semántica de nombrar una marca de tiempo MYSQL columna
- 18. log4j con marca de tiempo por cada entrada de registro
- 19. Marca de tiempo de MySQL: ¿por qué todos los ceros?
- 20. Campos de marca de tiempo en django
- 21. Actualice la tabla mysql con los mismos valores y obtenga una actualización de marca de tiempo
- 22. ¿Cómo convertir la fecha humana a la marca de tiempo de Unix en Mysql?
- 23. Seleccionar filas de la tabla MySQL donde la marca de tiempo PHP es anterior a X
- 24. convertir la marca de tiempo mysql en la fecha y hora reales?
- 25. ¿Muestra la marca de tiempo de la solicitud en Fiddler?
- 26. Cuando un directorio de UNIX cambia su marca de tiempo
- 27. Recuperando la marca de tiempo de la fila hbase
- 28. Actualizando a Mountain Lion y XCode 4 rompió mi "marca"?
- 29. Git-Svn: conservar la marca de tiempo después de ejecutar
- 30. Obtenga el año de la marca de tiempo sql
¿Puede mostrar una declaración de SQL para actualizar el campo para otros, me di cuenta por mí mismo? –