begin;
select * from user where name = ""; // id =1
UPDATE user SET name = "Abc" where id = 1;
commit;
如果有2条线程一起执行,第二个线程也会读到id=1(实际上这个id=1已经被线程1给更新了。如何避免这种情况呢?
除了 UPDATE user SET name = “Abc” where name= “”
begin;
select * from user where name = ""; // id =1
UPDATE user SET name = "Abc" where id = 1;
commit;
如果有2条线程一起执行,第二个线程也会读到id=1(实际上这个id=1已经被线程1给更新了。如何避免这种情况呢?
除了 UPDATE user SET name = “Abc” where name= “”
使用 读已提交(Read Committed),但可能出现“不可重复读”和“幻读”。
建议看一下数据库的事务隔离级别。
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;