一条mysql update if then 语句

update driver_online 
set vRemainCapacity= case when (vRemainCapacity>0) and ((vRemainCapacity-0.5) >0) then vRemainCapacity-0.5  else 0 end 
where driverId = 'DR120161118100001
MySQL中,`UPDATE`语句用于修改数据库表中的数据。如果由于某种原因(比如错误操作、并发问题或者业务逻辑需要),你希望回滚`UPDATE`操作,MySQL本身并不直接提供一种方法来“回滚”单个`UPDATE`语句。但是,你可以采取以下策略来达到类似的效果: 1. **使用事务(Transaction)**: 如果你在执行`UPDATE`之前启用了事务,可以使用`ROLLBACK`语句来撤销所有对当前事务所做的更改。例如: ```sql START TRANSACTION; -- 执行 UPDATE 语句 IF (某些条件) THEN ROLLBACK; -- 如果满足条件,回滚事务 ELSE COMMIT; -- 否则提交事务 END IF; ``` 这样,如果`UPDATE`语句导致的数据不符合预期,你可以通过`ROLLBACK`命令将其撤销。 2. **使用存储过程或触发器**: 可以创建存储过程,在其中包含`UPDATE`操作并使用条件来决定是否执行。如果条件不满足,可以通过异常处理来回滚操作。或者,可以创建一个触发器,当`UPDATE`失败时自动回滚。 3. **版本控制和备份**: 对于重要的数据操作,定期进行数据库备份是预防错误的好方法。如果`UPDATE`操作出错,可以从备份恢复到更新前的状态。 4. **使用ACID属性**: MySQL作为关系型数据库管理系统,遵循ACID(原子性、一致性、隔离性、持久性)原则。即使出现错误,系统会尽可能保证事务要么全部完成,要么全部回滚,这为数据的一致性提供了保障。 请注意,`UPDATE`语句本身没有回滚机制,你总是需要在应用层面或者数据库层面管理事务来确保数据的完整性和一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值