select * from testTable where id=72 只准一个人访问这条记录,这个人没有离开其它人不能访问。怎么弄,我是新手,请大家说详细点! 怎么锁定啊?
select * from testtable for update可以加排它锁,但是什么时候提交,得仔细想想。
好像用Lock Table语句可以实现
select from table for update skip locked;
关键在于这个 "skip locked"
select from table for update skip locked; ---------------- 正解
select from table for update skip locked 这个是好方法,学习
亲爱的兄弟们,问题还是没有解决啊! select * from table for update skip locked 在PLSQL Developer中使用安全符合我的功能要求! 因为它符合下面的2个条件! select * from table where id=9 for update skip locked 1、搜出记录后,用户没有提交数据直接关闭窗口或用户提交了,那么在另外一个窗口中还可以用上面的语句搜出记录。 2、如果用户不提交也不关闭窗口,那么用上面的语句搜不出记录问题就在下面的实际应用中:在计算机A上打开网页就执行:select * from table where id=9 for update skip locked 然后关闭这个网页(没提交数据) 在计算机B上打开网页执行同样的语句:select * from table where id=9 for update skip locked 就搜不到内容了,这可不是我想要的。关闭PLSQL Developer的窗口好象有个提交功能,关闭网页时(包含非法关闭网面窗口)怎样提交啊!这条语句select * from table for update skip locked 的表面现象骗了不少人啊!
在计算机A上打开网页就执行:select * from table where id=9 for update skip locked 然后关闭这个网页(没提交数据) 在计算机B上打开网页执行同样的语句:select * from table where id=9 for update skip locked 就搜不到内容了,这可不是我想要的。关闭PLSQL Developer的窗口好象有个提交功能,关闭网页时(包含非法关闭网面窗口)怎样提交啊!关闭网页与这个有什么关系啊, 检查你的应用, 没有什么方法可以解决应用不健壮留下的这种问题..
以上是从数据库的功能来说的
只准一个人访问这条记录,这个人没有离开其它人不能访问。怎么弄,我是新手,请大家说详细点!
怎么锁定啊?
----------------
正解
这个是好方法,学习
select * from table for update skip locked
在PLSQL Developer中使用安全符合我的功能要求!
因为它符合下面的2个条件!
select * from table where id=9 for update skip locked
1、搜出记录后,用户没有提交数据直接关闭窗口或用户提交了,那么在另外一个窗口中还可以用上面的语句搜出记录。
2、如果用户不提交也不关闭窗口,那么用上面的语句搜不出记录问题就在下面的实际应用中:在计算机A上打开网页就执行:select * from table where id=9 for update skip locked
然后关闭这个网页(没提交数据)
在计算机B上打开网页执行同样的语句:select * from table where id=9 for update skip locked
就搜不到内容了,这可不是我想要的。关闭PLSQL Developer的窗口好象有个提交功能,关闭网页时(包含非法关闭网面窗口)怎样提交啊!这条语句select * from table for update skip locked
的表面现象骗了不少人啊!
然后关闭这个网页(没提交数据)
在计算机B上打开网页执行同样的语句:select * from table where id=9 for update skip locked
就搜不到内容了,这可不是我想要的。关闭PLSQL Developer的窗口好象有个提交功能,关闭网页时(包含非法关闭网面窗口)怎样提交啊!关闭网页与这个有什么关系啊, 检查你的应用, 没有什么方法可以解决应用不健壮留下的这种问题..
如果是网页的话,看看是不是可以用javascript控制窗口的关闭事件!
楼上所说的都是能select ,不能update、delete
正确处理完成的,解除锁定,异常的,如果非人为干预,过了时间,下一个人get的时候,自然没有问题咯
有JS触发onunload="WinClose()"JS代码可以执行,但其中的服务器端的不会执行!
{
alert(document.all.btnClose.id);
document.all.btnClose.click();
}按钮btnClose中放的是COMMIT,但关闭网页后,可以弹出一个ALERT,但按钮中的代码怎么不执行啊?