数据库锁对象和使用SELECT * FOR UPDATE的表现和结果有何区别?

有研究过的说一下,我知道几点,但不完整,希望高人指教
2025-04-03 01:33:14
推荐回答(4个)
回答1:

1.数据库锁对象锁整张表,FOR UPDATE只能跟在single后面锁单条记录2.数据库锁对象是逻辑锁,调用才起做用。使用UNQUEUE_** DEQUEUE_**加锁解锁,而FOR UPDATE只在数据COMMIT或ROLLBACK后才会解锁。3.数据库对象对锁定有提示,FOR UPDATE被锁定是只能等待。这个OPEN SQL FOR UPDATE感觉比 DB里的FOR UPDATE功能要差不少

回答2:

非以前的开发经验,这是经过实际测试的HELP有对锁对象的说明,但也说明了,这是逻辑锁测试环境,两个程序,一个加锁对象,一个没加,加锁对象的可以在两个相同的程序中锁定,但不能限制未加锁对象的程序对相同表的更新。

回答3:

不要被以前的开发经验带到沟里,用Lock Object是你的不二选择。

回答4:

FORUPDATE锁定是物理锁定,在每次数据库提交(即每次屏幕更改)时自动释放,所以显示一个新的屏幕时,所有用FORUPDATE锁定的行都将自动解锁。要保证在显示新屏幕时锁定的行保留锁定状态,就必须使用SAP锁定。