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

本文关键字:一条 记录 更新 许多个 用户 | 更新日期: 2023-09-27 18:04:04

我有一个情况,其中有一个记录在数据库表,即。"中的"。用户'X','Y'和' Z'试图同时更新该记录。

'X' modify abcde to abcdd

'Y' modify abcde to abddd

'Z'修改abde为abee

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

能否提供解决方案

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

如果您想持久化所有更改,那么您将至少需要一个数据库表来跟踪所有这些更改…日志/历史表。问题是,您希望如何处理并发性?如果您不关心它,并且只想在这个单记录表中保留最后的修改,那么您不需要任何进一步的操作,除了跟踪所有更改的"日志记录"功能。但是,如果您确实关心并发性并希望以不同的方式处理它,那么您应该考虑使用最适合您需求的隔离级别运行事务

因为您只想记录并发情况下更新的记录。在表中有一个DateTime列,当您显示记录以跟踪DateTime。下面是用例。

第一个用户更新了记录->在DateTime列的值也更新原始记录

当第二个用户尝试更新时,你发现datetime已经改变了,这意味着它不再是更新,它将是一个插入语句。

对于第三个用户,情况与2类似。

现在数据库中就剩下这三条记录了。请记住,在这种情况下,主键也需要有一些增量列,否则会抛出错误。

每次操作都可以使用Trigger并在另一个Table中保存记录。捕获数据更改(CDC)也将适用于您的情况。