不可重复读和幻读之间有什么区别?
我已经阅读了维基百科的隔离(数据库系统)文章,但我有一些疑问.在下面的例子中,会发生什么:不可重复的读取和幻像读取?
交易A.SELECT ID, USERNAME, accountno, amount FROM USERS WHERE ID=1
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
1----MIKE------29019892---------5000
Run Code Online (Sandbox Code Playgroud)
交易B.
UPDATE USERS SET amount=amount+5000 where ID=1 AND accountno=29019892;
COMMIT;
Run Code Online (Sandbox Code Playgroud)
交易A.
SELECT ID, USERNAME, accountno, amount FROM USERS WHERE ID=1
Run Code Online (Sandbox Code Playgroud)
另一个疑问是,在上面的例子中,应该使用哪个隔离级别?为什么?
database oracle transactions transaction-isolation isolation-level