我是使用 Oracle 数据库 11g 的新手。
我正在使用 SQL Developer 测试表和行锁。
我的表中有这样的一行:
- 编号:1
- 描述:'abc'
我进行了更新而没有提交将字段更改desc
为'zxc'
. 在另一个会话中,我做了一个返回旧记录的选择:
- 编号:1
- 描述:'abc'
我在想它会给我一个错误或其他东西,因为我不想看到旧数据。
最后,当我在另一个会话中提交时,我在第二个会话中再次执行了查询并返回了提交的数据。
如何防止读取旧数据?
更新:
我阅读了有关 sql“SELECT FOR UPDATE”的信息,它阻止获取未提交的行,但例如有人告诉我有关银行的信息,所以我不确定这种方法是否具有良好的性能,其他问题是关于没有提交的连接丢失. 也许我需要使用函数或 PLSQL 来最小化丢失的连接,实际上我正在使用 PHP 脚本(Laravel 框架)。
提前致谢。