首页 新闻 会员 周边 捐助

MySql如何在更改数据时禁止读取,或更改完毕再读取?

0
悬赏园豆:10 [已解决问题] 解决于 2016-11-24 14:04

表Id自增主键

create procedure p1()

begin

delete from table1 where date = curdate();

insert into table1 values (1,2,3,4,5,56,6);

insert into table1 values (1,2,3,4,5,56,6);

insert into table1 values (1,2,3,4,5,56,6);

-- 这里显示删除旧数据,再插入新数据,数据量会在1千行,所以需要几秒时间

-- 但是web程序会每5秒读取一次,这样就会读到空值,比如已经删除了,但还没插入呢。

-- 请问这种情况怎么办呢?存储过程中还不能锁表。

end

Eysa的主页 Eysa | 初学一级 | 园豆:62
提问于:2016-11-22 12:09
< >
分享
最佳答案
0

SET session transaction isolation level repeatable read;

start transaction;

....

commit;

收获园豆:10
Daniel Cai | 专家六级 |园豆:10424 | 2016-11-22 13:32

  貌似是个好主意。

Eysa | 园豆:62 (初学一级) | 2016-11-22 15:46
其他回答(2)
0

这时候你需要修改你的想法,比如考虑一下WEB程序如何修改。

爱编程的大叔 | 园豆:30844 (高人七级) | 2016-11-22 12:54
0

mysql数据库好像有自己的锁,在操作数据的时候会上锁,其他的连接是无法查询到上锁的数据,好像是这样

风归云隐 | 园豆:416 (菜鸟二级) | 2016-11-22 15:37

proc 里不能有锁

支持(0) 反对(0) Eysa | 园豆:62 (初学一级) | 2016-11-22 15:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册