繁体   English   中英

允许多个用户更新同一条记录

[英]Allow multiple users to update same record

我有一种情况,即数据库表中有一条记录,即“ abcde”。 用户“ X”,“ Y”和“ Z”尝试同时更新该记录。

'X'将abcde修改为abcdd

'Y'将abcde修改为abddd

'Z'将abcde修改为abeee

所有更改应保留在数据库表中。

是否有可能请提供解决方案。

如果要保留所有更改,则将至少需要一个数据库表来跟踪所有这些更改...一个日志/历史记录表。 问题是,您要如何处理并发? 如果您不关心它,而只希望将最后一个修改保留在此单个记录表中,那么您无需采取任何其他措施,只有“记录”功能可以跟踪所有更改。 但是,如果您确实关心并发并希望以不同的方式来处理它,那么您应该考虑以最适合您的需求的隔离级别来运行事务。

如要只记录并发情况的更新记录。 在表中有一列DateTime,当您显示记录时要跟踪datetime。 所以这是用例。

第一个用户更新了记录->也通过更改DateTime列值来更新原始记录。

当第二用户尝试更新时,您发现datetime已更改,这意味着它不再是Update,它将是inset语句。

第三个用户的情况类似于2。

现在您将剩下数据库中的所有三个记录。在这种情况下,请记住主键也需要增加一些列,否则会引发错误。

您可以使用Trigger并将记录保存在每个操作的另一个表中。 捕获数据更改(CDC)也会在您遇到的情况下起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM