如何不在数据库中提交而是 select 修改后的数据

How don't submit in a database but select the modified data

我有一个包含多个 table 的数据库

并且用户可以更改 table 中的数据。

我的问题是,在用户单击按钮 "save" 之前,我不会更改数据库中的任何内容,即使他单击了 - 它也只提交 table 他决定保存

但与此同时,用户必须能够看到他所做的所有更改。每个 "select" 必须给他修改后的数据,而不是基础数据。

如何一方面不提交数据库中的数据,另一方面将修改后的数据展示给用户?

我想做一个事务而不提交,(并使用未提交的读取)但是为此我不能关闭连接(如果我没有提交就关闭 - 所有更改都被取消)并且我没有不会让多个连接保持打开状态。

我还想建立一个包含所有更改的列表,每当用户进行 select - 首先从列表中搜索。但它非常复杂,我更喜欢简单的解决方案

谢谢

您可以使用临时表来存储临时数据,然后在需要时移动它们。

这将非常处理起来很棘手,因为您坚持不能使用交易。

我能建议的最好的方法是向每个 table 添加列来表示状态 - 但即便如此,你如何确保 user A 查看更改前 userB post 但尚未提交。

也许您可以考虑使用两个 table 并根据需要从两者中选择相关数据。

无论哪种方式,这都是一种令人讨厌的方式,而且性能不佳。

你坚持不能使用交易的那一刻就是你失去了任何简单答案的机会。

临时 table 在这里无济于事(如上所述),因为它与您声明 关闭的连接相关联。唯一的替代临时 table 解决方案是全局临时 table 但这也会导致问题(谁创建它,如果你是最后一个使用它的连接怎么办,检查它是否存在等。 )