鱼C论坛

 找回密码
 立即注册
查看: 1067|回复: 7

[已解决]pymysql 操作先查询数据,在界面显示后,用户可能修改后,再返回原来的行

[复制链接]
发表于 2021-7-28 21:39:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求教,

自己做了一个界面,连接mysql 后,需要先查询数据,查询到以后显示到界面,然后用户可能会修改,然后再返回数据库原来的位置做更新
如下的语句,是直接进行更新
cursor.execute("update user3 set XGYY = '%s' where id = '%s'"%('图纸变更','3'))  

但是,如果我先查出来显示,是否让他产生某种关联,而不用 用 where去找哪一行,直接点确定就修改了,原来从哪行找出来的,就改了那一行.
最佳答案
2021-7-30 12:51:26
huashengzi 发表于 2021-7-29 21:56
再请教,会不会出现一种状况,A用户查了一条数据到GUI,然后做了一些修改,然后准备存回去
但是在这之中 ...


是的,有这种可能,这就是数据库领域的"事务"和"事务隔离级别"问题。数据库对于这种情景,有不同的管理策略。
简单讲两个,
一、你可以让A的更新操作作为一个事务,然后锁住相应的数据
      不让其他用户进行更新操作(修改/删除),只有等到A完成写入(更新)操作,才允许其他用户操作;  
二、或反过来,B更优先,让他先完成更新/删除,让A更新失败并提醒,和处理异常。

或宽泛地讲,从另一个角度看(文件视角),这种情景属于"版本管理"问题,任何数据被修改了,
它整体上,相比未被修改前,它就是一个"新的版本",你要如何维护和管理这些不同的版本。
像版本管理工具Git, SVN等都是为了处理这种情况而发明的工具。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-29 09:02:10 | 显示全部楼层
本帖最后由 nahongyan1997 于 2021-7-29 09:28 编辑

请明确你的问题,末尾用问号,你这种问问题的方法别人根本理解不了,另外学mysql可以加我qq,我要是有空可以教你,

顺便宣传我自写的网站 ,  http://puddingcat.top:9999 现在注册个账号你就是老用户了 ,以后我要是开发其他网站都是通用的账号。

用的 python爬虫 + html5 + css3 + js + flask + mysql + pyqt5 做成的,所有页面模板都是自写的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-29 09:42:27 | 显示全部楼层
并不能,因为你查询一次后,返回的结果有点类似 return 的返回值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-29 11:03:29 | 显示全部楼层
你的意思是像可以双击编辑修改查询出来的数据,是吧。GUI层你可以这样,
但内部代码你肯定得写sql语句, Update .. where..  不然你怎么更新数据?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-29 21:56:51 | 显示全部楼层
阿奇_o 发表于 2021-7-29 11:03
你的意思是像可以双击编辑修改查询出来的数据,是吧。GUI层你可以这样,
但内部代码你肯定得写sql语句, U ...

再请教,会不会出现一种状况,A用户查了一条数据到GUI,然后做了一些修改,然后准备存回去
但是在这之中,B用户把这条数据删除了
那A用户是不是没办法让这条数据回去了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-30 12:51:26 | 显示全部楼层    本楼为最佳答案   
huashengzi 发表于 2021-7-29 21:56
再请教,会不会出现一种状况,A用户查了一条数据到GUI,然后做了一些修改,然后准备存回去
但是在这之中 ...


是的,有这种可能,这就是数据库领域的"事务"和"事务隔离级别"问题。数据库对于这种情景,有不同的管理策略。
简单讲两个,
一、你可以让A的更新操作作为一个事务,然后锁住相应的数据
      不让其他用户进行更新操作(修改/删除),只有等到A完成写入(更新)操作,才允许其他用户操作;  
二、或反过来,B更优先,让他先完成更新/删除,让A更新失败并提醒,和处理异常。

或宽泛地讲,从另一个角度看(文件视角),这种情景属于"版本管理"问题,任何数据被修改了,
它整体上,相比未被修改前,它就是一个"新的版本",你要如何维护和管理这些不同的版本。
像版本管理工具Git, SVN等都是为了处理这种情况而发明的工具。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-30 23:04:02 | 显示全部楼层
阿奇_o 发表于 2021-7-30 12:51
是的,有这种可能,这就是数据库领域的"事务"和"事务隔离级别"问题。数据库对于这种情景,有不同的管理 ...

大神你好, 还是事务的方法简单一点,事务隔离 ,请教这个具体怎么执行的 pymysql 执行的命令流程是什么,还是还需加入新的模块?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 17:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表