MySql的行版本控制

MySql的行版本控制,mysql,rowversion,Mysql,Rowversion,MySQL是否有内置的行版本控制机制?类似于MS SqlServer中的“timestamp”列。如果您添加“timestamp”字段,它将在您更新行时自动更新它-虽然不完全是版本控制,但听起来可能是您所追求的。Mysql没有内置的行版本控制机制。虽然使用时间戳类型似乎是可以的,但是对于同时更新多行并花费比时间戳解析时间更长的查询,您会遇到这种情况,因为分配的值是基于更改的开始而不是更改的结束 因此,如果更新查询影响100行,则所有行都将具有相同的时间戳(例如值2015-10-28 09:47:

MySQL是否有内置的行版本控制机制?类似于MS SqlServer中的“timestamp”列。

如果您添加“timestamp”字段,它将在您更新行时自动更新它-虽然不完全是版本控制,但听起来可能是您所追求的。

Mysql没有内置的行版本控制机制。虽然使用时间戳类型似乎是可以的,但是对于同时更新多行并花费比时间戳解析时间更长的查询,您会遇到这种情况,因为分配的值是基于更改的开始而不是更改的结束

因此,如果更新查询影响100行,则所有行都将具有相同的时间戳(例如值2015-10-28 09:47:10.123456)。但是,这些行可能要到2015-10-28 09:47:10.654321才能完成写入

如果分别根据其他时间戳(比如2015-10-28 09:47:10.500000)查找所有更改的行,则不会得到想要的结果。根据您的代码,您可能会错过更改的100行


事实上,现在对行的更改可能在过去有一个时间戳,您不能简单地比较两个时间戳来获得所有更改的行。

谢谢。“timestamp”数据类型应该有帮助。我认为问题更多的是,当两个连接在一段时间内更新同一记录时,时间值不会因为时间戳解析而改变。在我看来,查找同时更改的记录与行版本控制无关。