Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does MySQL have an equivalent of SQL Server rowversion?

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?

like image 330
Phil Wright Avatar asked Oct 19 '15 22:10

Phil Wright


1 Answers

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

like image 61
Honeyboy Wilson Avatar answered Oct 13 '22 02:10

Honeyboy Wilson