2015-10-19 115 views
1

我正在将SQL Server数据库模式迁移到MySQL。 SQL Server上的某些表有一个rowversion类型的列。这是一个整数值,该值在行被首次插入时设置,然后每次更新行的任何列时再次设置。这个数字只是增加了。MySQL是否具有与SQL Server rowversion等效的功能?

我们利用这个来检查并发问题。因此,当插入到服务器时,我们可以检查传入值是否与当前存储值不同。如果是这样,那么该行自从导致该插入的读取以来已被更新。然后,我们可以拒绝更新,因为它基于过时的值。乐观并发。

是否有相当于我们在MySQL中做同样的事情?

+0

不是我所知道的。但是如果你控制了所有的UPDATE语句,这难道不容易实现吗?在创建记录时使用0初始化myrowversion列,在每个UPDATE上使用'SET myrowversion = myrowversion + 1'。如果你将它与UPDATE语句中的WHERE子句结合起来,那么UPDATE表SET ...,myrowversion = myrowversion +1 WHERE record_id = ... AND myrowversion = {你先前读取的值} - 应该达到同样的效果吧? – CBroe

+0

阅读关于触发器 –

回答

相关问题