我的情况是数据库表中有一条记录,即'abcde'。用户'X','Y'和“Z”同时尝试更新该记录。
'X'修改abcde到abcdd
'Y'修改abcde到abddd
'Z'修改abcde到abeee
所有更改都应保留在数据库表中。
是否有可能提供解决方案。
答案 0 :(得分:0)
如果要保留所有更改,则至少需要一个数据库表来跟踪所有这些更改...日志/历史记录表。 问题是,你想如何处理并发?如果您不关心它,并且您只想在此单个记录表中保留最后一次修改,那么您不需要任何进一步的操作,除了" logging"跟踪所有更改的功能。 但是,如果你关心并发并希望以不同的方式处理它,那么你应该看看运行具有最适合你需求的隔离级别的事务
答案 1 :(得分:0)
由于您只想为并发案例记录更新的记录。在表格中有一列DateTime,当您显示记录以保持日期时间的轨迹时。所以这是用例。
第一位用户更新了记录 - >使用DateTime列值中的change更新原始记录。
当第二个用户尝试更新时,您发现日期时间已更改,这意味着它不再是更新,它将是一个插入语句。
对于第三个用户,情况类似于2。
现在剩下数据库中的所有三条记录了。在这种情况下,主键需要有一些增量列,否则会引发错误。
答案 2 :(得分:0)
您可以在每个操作中使用触发器并将记录保存在另一个表中。捕获数据更改(CDC)也适用于您的情况。