我在存储过程中有如下语句:
UPDATE TABLE TABLE1 SET FIELD1=XXXX
...
SELECT FIELD1 FROM TABLE1当UPDATE执行后,其余的应用程序或者线程就不能再更改这条记录了.直到我的存储过程执行完成
要做到这种需求,应该使用哪种事务类型?是否对性能有影响?
UPDATE TABLE TABLE1 SET FIELD1=XXXX
...
SELECT FIELD1 FROM TABLE1当UPDATE执行后,其余的应用程序或者线程就不能再更改这条记录了.直到我的存储过程执行完成
要做到这种需求,应该使用哪种事务类型?是否对性能有影响?
update table1 set field1=... where pk_col='xxx';
...
...
commit;
是不是update本身就会锁定这条记录,直到commit完成,别的线程和应用程序才能更改它
select * from table1 where pk_col='xxx' for update; update table1 set field1=... where pk_col='xxx';
...
...
SELECT FIELD1 FROM TABLE1;
commit;