select * from tb /* id name timestamp ----------- ----- ------------------ 1 aa 0x00000000000036B3 2 bb 0x00000000000036B4*/ update tb set name='cc' where id=1select * from tb /*id name timestamp ----------- ----- ------------------ 1 cc 0x00000000000036B5 2 bb 0x00000000000036B4*/ --可以看到 修改前0x00000000000036B3,修改后0x00000000000036B5 --一旦有一个人修改timestamp就会变化,所以多用户操作时,每个用户把修改前得timestamp拿出来 --当执行自己的update时,判断一下,比较当前的timestamp跟修改时拿出来的timestamp,如果不同就说明有人改过 --返回页面提示用户,已经被人修改,酱紫的。
create table tb(id int,name varchar(5),timestamp)insert tb
select 1,'aa',null
insert tb
select 2,'bb',null
select * from tb
/*
id name timestamp
----------- ----- ------------------
1 aa 0x00000000000036B3
2 bb 0x00000000000036B4*/
update tb set name='cc' where id=1select * from tb
/*id name timestamp
----------- ----- ------------------
1 cc 0x00000000000036B5
2 bb 0x00000000000036B4*/
--可以看到 修改前0x00000000000036B3,修改后0x00000000000036B5
--一旦有一个人修改timestamp就会变化,所以多用户操作时,每个用户把修改前得timestamp拿出来
--当执行自己的update时,判断一下,比较当前的timestamp跟修改时拿出来的timestamp,如果不同就说明有人改过
--返回页面提示用户,已经被人修改,酱紫的。