我正在使用Oracle数据库(11g第2版)。想象一下多个连接同时执行以下操作:
在我看来,防止冲突的唯一方法是阻止连接执行上述4步序列,而任何其他连接当前正在执行4步序列。
事务可以在Oracle中实现这种广泛的锁定/阻塞吗?
提前感谢您就如何最好地处理这种情况提供答案和建议。
答案 0 :(得分:1)
添加唯一的检查约束,并实现异常处理程序以获取下一个序列,然后重试。
这假设你正在使用pl / sql。
另一种方法是使用Oracle序列,缓存大小为1.这也将确保序列中没有间隙 2. SELECT * FROM table_name FOR UPDATE阻止来自其他会话的所有读取......