sql >> Base de Datos >  >> RDS >> Mysql

Versionado de filas para MySql

Mysql no tiene un mecanismo de versión de fila incorporado. Si bien el uso de un tipo de marca de tiempo puede parecer correcto, se equivocará con las consultas que actualizan varias filas simultáneamente y toman más tiempo que la resolución de la marca de tiempo, ya que el valor asignado se basa en el inicio del cambio y no en el final de el cambio.

Por lo tanto, si su consulta de actualización afecta a 100 filas, todas las filas tendrán la misma marca de tiempo (digamos un valor de 2015-10-28 09:47:10.123456). Pero, es posible que las filas no terminen de escribirse hasta el 28-10-2015 09:47:10.654321.

Si, por separado, está buscando todas las filas modificadas en función de alguna otra marca de tiempo (por ejemplo, 2015-10-28 09:47:10.500000), no obtendrá los resultados que desea. Y dependiendo de su código, puede perder las 100 filas cambiadas.

Es el hecho de que los cambios en las filas ahora pueden tener una marca de tiempo en el pasado que no puede simplemente comparar 2 marcas de tiempo para obtener todas las filas modificadas.