mysql更新数据无影响吗_mysql update语句更新有时候对数据库没影响?

请问你们有没有遇到过mysql update语句更新有时候对数据没影响啊? 麻烦你们帮忙看看, 这个问题困扰了我好几天了.

我在开发中遇到一个问题: 在执行以下代码时有时候能够对数据产生影响有时候不能,而且stmtUpdateDist.executeUpdate()返回的不为0, 说明是在执行更新时是找到了这条记录;.很奇怪不知哪出问题了.

以下代码是放在事务中的

PreparedStatement stmtUpdateDist = conn.prepareStatement(“UPDATE district SET d_next_o_id = d_next_o_id + 1 WHERE d_id = ? AND d_w_id = ?”);

stmtUpdateDist.setInt(1, d_id);

stmtUpdateDist.setInt(2, w_id);

int result = stmtUpdateDist.executeUpdate();

以下是跟踪:

UPDATE district SET d_next_o_id = d_next_o_id + 1 WHERE d_id = ? AND d_w_id = ? 的一部分日志,参数 d_id=7, d_w_id=1(参数在运行时动态的)

2011-04-26 16:45:46,072 FATAL [pool-6-thread-1] controller.Backend (Backend.java:590) – Backend_1 New Order Transaction#29 Arrival.

2011-04-26 16:45:46,125 FATAL [pool-6-thread-1] controller.Backend (Backend.java:271) – Backend_1 New Order Transaction#29(/127.0.0.1:65506)Before UPDATE d_next_o_id#(d_id=7, d_w_id=1) d_next_o_id#3585

2011-04-26 16:45:46,127 FATAL [pool-6-thread-1] controller.Backend (Backend.java:307) – Backend_1 New Order Transaction#29(/127.0.0.1:65506)After UPDATE d_next_o_id# (d_id=7, d_w_id=1) d_next_o_id#3586

2011-04-26 16:45:46,893 FATAL [pool-6-thread-1] controller.Backend (Backend.java:498) – Backend_1 NewOrderTransaction#29 After Commit d_next_o_id#3585

第一个红色标注出来的是在更新之前通过执行该事务的Connection查询出来的d_next_o_id-3585, 查询条件中的参数为(d_id=7, d_w_id=1)

第二个红色标注出来的是在更新之后通过执行该事务的Connection查询出来的d_next_o_id-3586, 查询条件中的参数为(d_id=7, d_w_id=1)

第三个红色标注出来的是在该事务提交之后通过其他Connection查询出来的d_next_o_id-3585, 查询条件中的参数为(d_id=7, d_w_id=1)

MYSQL 5.1.53

Innodb存储引擎

d_id, d_w_id是表的主键

d_next_o_id, d_id, d_w_id都是int(11)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值