数据库如何判断一条数据是否被修改?

发布于 2022-09-05 03:55:36 字数 246 浏览 19 评论 0

A ,B同时在一页面上访问一组数据, A针对其中一条数据做了修改. B的页面没有刷新,所以B看见的信息是在A修改之前的,这时候B也要修改这条数据. 我如何做才能提醒B,这条数据已经被修改过.

看到一个办法,修改数据之前根据这条数据最后修改的时间先将这条数据查出来(select * from xxx where updatetime = xxx and id= xxx),如果查不到说明修改过,查到了说明没有修改.

我想问问有没有更好的办法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

黑白记忆 2022-09-12 03:55:36

我记得hibernate中乐观锁用的是版本号字段实现的,每次更新成功后时候版本号字段的值加1
在更新前,先检查数据库中的版本号和页面中保存的版本号是否相同,如果版本号变大,提示用户在编辑期间已有其他用户修改了数据。

当然也可以用悲观锁,进入页面的时候使用的select ... for update锁定记录,这时候其他用户就不能同时编辑锁定的记录了。

她说她爱他 2022-09-12 03:55:36

我会这样做————加个字段,edit_num,每改一次+1,B要改的时候比对一下。

油饼 2022-09-12 03:55:36

乐观锁 乐观锁 乐观锁

波浪屿的海角声 2022-09-12 03:55:36

乐观锁机制 通过给数据添加一个version字段来实现

冷月断魂刀 2022-09-12 03:55:36

给数据表加个字段update_at类型为TIMESATMP,默认值为CURRENT_TIMESTAMP,其他不用改
每当数据被更新后,该值会自动更新

清风夜微凉 2022-09-12 03:55:36

在这条数据里面加个version 字段版本号 默认从0开始,没修改一次自增一次,每次提交验证本次的version和数据库里的version是否一致即可。

弥枳 2022-09-12 03:55:36

xxx表里加一个版本号的字段

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文