以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 事务如何锁表不锁库 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172439) |
-- 作者:lgzhao -- 发布时间:2021/10/13 8:47:00 -- 事务如何锁表不锁库 蓝老师好, 通过数据库事务执行出入库操作保证一致性。但是发现普通方法启动事务后会锁定整个数据库,期间其他人无法保存数据。 实际上这个入库事务仅仅只查询和写入一张表,其他的表应该可以释放。但默认的锁是阻止了整个数据库的写入。 不知道有没有办法,在数据库事务启动的时候,指定锁定特定的一个表? 谢谢
|
-- 作者:有点蓝 -- 发布时间:2021/10/13 9:13:00 -- 使用的什么数据库?正常情况下都是锁表不可能是锁库。 如果是access,应该是并发导致的问题。access并发数很少,比较流畅的就5个左右,如果使用的人多建议改为SqlServer
|
-- 作者:lgzhao -- 发布时间:2021/10/13 9:17:00 -- 是sql server 实际上具体锁了什么我不是百分百确定。 但可以确定的是,当我执行事务的时候,事务内部仅仅反复操作一个表,但如果同时其他人也在保存的话,即使保存另外的表,系统也会弹出错误提示保存失败。 所以才有这个疑问。
|
-- 作者:有点蓝 -- 发布时间:2021/10/13 9:23:00 -- 保存另外的表是怎么保存的,datatables(xx).save这种?还是直接点击左上角的保存按钮? 如果是左上角的保存按钮是保存整个项目的表的,也许用户也改过事务内操作的表呢?
|
-- 作者:有点蓝 -- 发布时间:2021/10/13 9:35:00 -- 我使用2个项目测试了一下,在事务里对表A做更新操作,然后挂起来,不提交。另外一个项目无法操作表A,但是其它表都是正常可操作保存的 |
-- 作者:lgzhao -- 发布时间:2021/10/13 11:08:00 -- 好的我再试试 谢谢 |