
正文
php数据库事务回滚 mysql事务回滚
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
数据库事务不提交或提交失败需要回滚吗
1.
在同一事务条件下,回滚和不提交,表现是一样的
但是还有些差别
事务处理,是将操作事件交给数据库(模拟)运行,直到commit操作,才使得修改实际产生效果,你可以看做是未提交事务都是处于一个临时库中进行
回滚是对于同一个事务,如果产生了错误,那么取消这个临时库中的操作,不对实际数据产生影响
最主要的区别在于,如果不回滚,这些临时操作会持续到这个个connection结束为止,也就是虽然你看不到,但是临时库的操作依然存在,而回滚是即时生效,其实都是回滚了,只是时间点的不一样
2.
我说你在开玩笑吧。没有提交事务并不代表你对数据库的改变不存在,如果是脏读的隔离层级你修改数据到提交完成前的变更其他访问者也是可以看到的。只有你提交后这部分修改才确认不会变更而已,哪怕设定了其他隔离级别也可以看到了。
如果你不回滚,那么线程就停在哪里搁着?制造出数据库死链放着不管直到数据库认为这个连接超时自动断开并自动回滚?
ISOLATION_READ_UNCOMMITTED:允许读取其他并发事务还未提交的更新,会导致事务之间的3个缺陷发生,这是速度最快的一个隔离级别,但同 时它的隔离级别也是最低
相关问答
Q1: thinkphp rollback没有回滚数据库为什么
回滚示例如下:
$m=D('YourModel');//或者是M();
$m2=D('YouModel2');
$m-startTrans();//在第一个模型里启用就可以php数据库事务回滚了php数据库事务回滚,或者第二个也行
$result=$m-where('删除条件')-delete();
$result2=m2-where('删除条件')-delete();
if($result $result2){
$m-commit();//成功则提交
}else{
$m-rollback();//不成功,则回滚php数据库事务回滚!
}
注意:MySQL数据库必须是Innodb和Bdb才能支持事务。
Q2: 请教大神 ThinkPHP5 的事务回滚问题
请看手册php数据库事务回滚:
使用 transaction 方法操作数据库事务php数据库事务回滚,当发生异常会自动回滚,例如:
自动控制事务处理
Db::transaction(function(){
Db::table('think_user')-find(1);
Db::table('think_user')-delete(1);
});
也可以手动控制事务,例如:
// 启动事务
Db::startTrans();
try{
Db::table('think_user')-find(1);
Db::table('think_user')-delete(1);
// 提交事务
Db::commit();
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
}
注意在事务操作php数据库事务回滚的时候,确保你php数据库事务回滚的数据库连接是相同的。
Q3: thinkphp事务回滚啥意思
事务是一组组合成逻辑工作单元php数据库事务回滚的操作。
简单的说 就是 操作几个相关的数据库时php数据库事务回滚,保证每一步操作都完整php数据库事务回滚,如果有错误php数据库事务回滚,就返回到最开始。
例如,从A 里面 减1 ,在给 B 里面 加1 这是一个过程。如果不用事物,就会发送 A里面已经减php数据库事务回滚了1,但是B 里面 并没有加成功。如果用事物提交,B里面没用加成功,A里面就不会减1.然后结束事物,报错。
Q4: thinlkphp 事务处理的时候,,在代码出错的时候怎么实现数据库的回滚,
roolback 即可,数据模型中有相关的函数。
太久没有使用 TP, 你自行查看文档吧。
Q5: 什么是事务事务中的提交和回滚是什么意思
事务(Transaction)php数据库事务回滚,一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQLphp数据库事务回滚,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。
事务的提交是指事务里的所有操作都正常完成。
事务的回滚是指程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。
扩展资料:
事务的特征:
事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
1、原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
2、一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其php数据库事务回滚他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
4、持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
参考资料来源:百度百科-事务
参考资料来源:百度百科-回滚
关于php数据库事务回滚和mysql事务回滚的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







