Foxtable(狐表)用户栏目专家坐堂 → 事务如何锁表不锁库


  共有3572人关注过本帖树形打印复制链接

主题:事务如何锁表不锁库

帅哥哟,离线,有人找我吗?
lgzhao
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
事务如何锁表不锁库  发帖心情 Post By:2021/10/13 8:47:00 [只看该作者]

蓝老师好,

通过数据库事务执行出入库操作保证一致性。但是发现普通方法启动事务后会锁定整个数据库,期间其他人无法保存数据。
实际上这个入库事务仅仅只查询和写入一张表,其他的表应该可以释放。但默认的锁是阻止了整个数据库的写入。

不知道有没有办法,在数据库事务启动的时候,指定锁定特定的一个表?

谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/13 9:13:00 [只看该作者]

使用的什么数据库?正常情况下都是锁表不可能是锁库。

如果是access,应该是并发导致的问题。access并发数很少,比较流畅的就5个左右,如果使用的人多建议改为SqlServer

 回到顶部
帅哥哟,离线,有人找我吗?
lgzhao
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/10/13 9:17:00 [只看该作者]

是sql server
实际上具体锁了什么我不是百分百确定。
但可以确定的是,当我执行事务的时候,事务内部仅仅反复操作一个表,但如果同时其他人也在保存的话,即使保存另外的表,系统也会弹出错误提示保存失败。
所以才有这个疑问。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/13 9:23:00 [只看该作者]

保存另外的表是怎么保存的,datatables(xx).save这种?还是直接点击左上角的保存按钮?

如果是左上角的保存按钮是保存整个项目的表的,也许用户也改过事务内操作的表呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/13 9:35:00 [只看该作者]

我使用2个项目测试了一下,在事务里对表A做更新操作,然后挂起来,不提交。另外一个项目无法操作表A,但是其它表都是正常可操作保存的

 回到顶部
帅哥哟,离线,有人找我吗?
lgzhao
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/10/13 11:08:00 [只看该作者]

好的我再试试 谢谢

 回到顶部