假设一张表
create table test
(
result char(1) ,
mark char(1) ,
)
然后初始化,假设就一行 ,
insert test values('1','1');
两个程序同时对这张表操作
A
update test set mark = 'A',result = '1' where mark<>'B' ;
B
update test set mark = 'B',result = '2' where mark<>'A' ;
通过mark字段,来判断是否被另外的程序修改过了,如果被修改过了,就不再修改,
程序A 对 表 执行where判断,判断成功了,但还没有对表进行修改,
这时候程序B也对表进行 where判断,也成功了(因为A还没有对表进行修改,通过mark判断,也可以成功)
然后A,B都对表进行修改
本来是想让只能AB中的一个对表进行修改的
如果一条SQL语句是原子操作,那么不会出现我说的情况;如果不是原子操作,那么有可能出现我说的情况。
我想知道的是,是原子操作吗,,,如果可以的话,能否写个程序测试一下