mysql事务问题演示
This commit is contained in:
42
MySQL/transaction-error/user_a.sql
Normal file
42
MySQL/transaction-error/user_a.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
-- example 1
|
||||
|
||||
-- ========== 0 =========
|
||||
start transaction;
|
||||
-- A先查询
|
||||
select *
|
||||
from customer;
|
||||
-- ========== 1 =========
|
||||
|
||||
-- ========== 2 =========
|
||||
-- 在 B 添加数据后,A 尝试进行修改。奇怪的是,明明查询不到,居然可以修改成功
|
||||
update customer
|
||||
set username = 'wuhu'
|
||||
where id = 1;
|
||||
-- A 再次查询表中数据,发现修改的那一行现身了
|
||||
select *
|
||||
from customer;
|
||||
commit;
|
||||
-- ========== 3 =========
|
||||
|
||||
|
||||
-- example 2
|
||||
-- ========== 0 =========
|
||||
start transaction;
|
||||
-- A先查询,查到数据如下:
|
||||
-- 1,Fortern
|
||||
-- 2,Maxin
|
||||
-- 3,MooGeo
|
||||
select *
|
||||
from customer;
|
||||
-- ========== 1 =========
|
||||
|
||||
-- ========== 2 =========
|
||||
-- A 备份表中数据到另一个表
|
||||
insert into customer_back select * from customer;
|
||||
commit;
|
||||
-- 结果备份表中的数据居然是被其他事物修改的数据!!
|
||||
select * from customer_back;
|
||||
-- 为什么会这样?
|
||||
-- ========== 3 =========
|
||||
|
||||
select * from customer where id = 1;
|
||||
Reference in New Issue
Block a user