Does MySQL have an equivalent of SQL Server rowversion?

守給你的承諾、 提交于 2020-01-13 11:23:10

问题


I am migrating a SQL Server database schema over to MySQL. Some of the tables on SQL Server have a column of type rowversion. This is an integer value that is set when the row is first inserted and then again each time any column of the row is updated. The number is only ever incremented.

We make use of this to check for concurrency problems. So when an insert comes to the server we can check if the incoming value is different to the current stored value. If so, then the row has been updated since the read that has led to this insert. We can then reject the update because it is based on out of date values. Optimistic concurrency.

Is there an equivalent that will do the same for us in MySQL?


回答1:


The MySQL TIMESTAMP data type has the auto initialize and auto update features needed for optimistic concurrency tests. See, for example, http://www.mysqltutorial.org/mysql-timestamp.aspx




回答2:


The MySQL TIMESTAMP data type may have initialize and auto-update features but the data type is date based and if the resolution is not in the ns dimension you will have problems. Even with ns resolution there still might be problems... So the answer is actually no.



来源:https://stackoverflow.com/questions/33224923/does-mysql-have-an-equivalent-of-sql-server-rowversion

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!