--disable_query_log set @@session.explicit_defaults_for_timestamp=off; --enable_query_log # owner: yuchen.wyc # owner group: SQL1 # description: OUR GOAL: Make all this simple and effective! --disable_warnings drop table if exists t1,t2,t3,t4; --enable_warnings connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT); connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT); connect (conn3,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT); connect (conn4,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT); ### # account test ## create table t1(id int primary key, money1 int, when1 datetime default now()); insert into t1(id,money1) values(1,100); insert into t1(id,money1) values(2,100); --replace_column 3 searched select id,money1,when1 from t1; --let $user1_ct=query_get_value(select * from t1, when1, 1) --let $user2_ct=query_get_value(select * from t1, when1, 2) --echo id1 - 100 id2 + 100 connection conn1; begin; update t1 set money1 = money1-100 where id = 1; update t1 set money1 = money1+100 where id = 2; commit; --replace_column 3 searched select id,money1,when1 from t1; connection conn2; --replace_column 3 searched select id,money1,when1 from t1; --let $user1_c_2=query_get_value(select * from t1, when1, 1) --let $user2_c_2=query_get_value(select * from t1, when1, 2) if($user1_c_2 != $user1_ct) { --echo send success } if($user2_c_2 != $user2_ct) { --echo receive success } drop table t1; ### # account fail test ## create table t1(id int primary key, money1 int, when1 datetime default now()); insert into t1(id,money1) values(1,100); insert into t1(id,money1) values(2,100); --replace_column 3 searched select id,money1,when1 from t1; --let $user1_ct=query_get_value(select * from t1, when1, 1) --let $user2_ct=query_get_value(select * from t1, when1, 2) --echo id1 - 100 id2 + 100 connection conn1; begin; update t1 set money1 = money1-100 where id = 1; disconnect conn1; --error 2006 update t1 set money1 = money1+100 where id = 2; --error 2006 commit; connection conn2; --replace_column 3 searched select id,money1,when1 from t1; --let $user1_c_2=query_get_value(select * from t1, when1, 1) --let $user2_c_2=query_get_value(select * from t1, when1, 2) if($user1_c_2 != $user1_ct) { --echo send success } if($user1_c_2 == $user1_ct) { --echo send failed } if($user2_c_2 != $user2_ct) { --echo receive success } if($user2_c_2 == $user2_ct) { --echo receive failed } drop table t1;