您可以使用乐观并发控制,这涉及到向表中再添加一列(时间戳或等效列,或者只是一个普通的 int)并在执行更新时使用它。以下是您可以如何使用它(如果普通 int 是“版本标记”):
update BlogPost set PublishedOn = :publishedOn, VersionTag = VersionTag + 1
where ID = :id and VersionTag = :versionTag
Run Code Online (Sandbox Code Playgroud)
假设时间戳由 DBMS 自动更新,那么时间戳的处理方式如下:
update BlogPost set PublishedOn = :publishedOn
where ID = :id and Timestamp = :timestamp
Run Code Online (Sandbox Code Playgroud)