草庐IT

revert回滚

全部标签

mysql - 如何回滚 MySQL 事务中的所有语句?

我需要更新一个表(bigtable)的特定列,其中包含另一个表的ID(FK约束到oldsmalltable)以指向另一个表上的ID(FKnewsmalltable的约束)。基本上这就是我正在做的:DELIMITER//CREATEPROCEDUREupdatebigtable()BEGINDECLAREEXITHANDLERFORSQLEXCEPTION,SQLWARNINGROLLBACK;STARTTRANSACTION;ALTERTABLEbigtableDROPFOREIGNKEYbigtable_ibfk_1,MODIFYsmalltable_idSMALLINT;UPDAT

mysql - 在 mysql 池中使用回滚

正在关注this教程我已经promise了mysql库,它允许我使用.then而不是回调函数。这是我对mysql池的设置:varmysql=require('mysql')varpool=mysql.createPool({connectionLimit:10,host:'localhost',user:'matt',password:'password',database:'my_database'})pool.getConnection((err,connection)=>{if(err){if(err.code==='PROTOCOL_CONNECTION_LOST'){cons

mysql - Spring 测试 - 回滚问题

我已经在我的应用程序中创建了Spring集成测试。问题是,一个测试没有正确回滚,在数据库中留下了一些东西并导致后续测试失败。我注意到,如果持久实体是简单实体,则测试效果很好。当实体是继承层次结构的一部分并且继承类型是InheritanceType.JOINED类型时,测试失败。当我将其更改为InheritanceType.SINGLE_TABLE时,它不会失败。代码如下:测试类:@RunWith(SpringJUnit4ClassRunner.class)@Transactional@ContextConfiguration(locations={"classpath:beans/re

mysql - 如何回滚 MySQL 中的错误事务?

updatemy_tablesetlimit_id=2whereid='176846';starttransaction;updatemy_tablesetlimit_id=1whereid='176846';updatemy_tablesetlimit_id=4whereid='176846';--我想自动回滚-我希望脚本输出2,而不是1。我无权访问正在使用的连接策略。 最佳答案 阅读这里:http://dev.mysql.com/doc/refman/5.5/en/commit.htmlBydefault,MySQLrunswi

php - 是什么导致 mySQL 中出现回滚失败错误?

当我尝试执行回滚时出现以下错误。Rollbackfailed.Thereisnoactivetransaction.我搜索了这个问题并找到了一些建议禁用自动提交设置的建议。但我不确定该怎么做。上述错误还有其他原因吗?我正在使用MYSQL和Zend,我的php.ini文件加载了所需的驱动程序。 最佳答案 MySQL默认工作在自动提交。您可以通过以下方式关闭它:$connection->setAttribute(Doctrine_Core::ATTR_AUTOCOMMIT,false);我的另一个想法是你没有开始交易(这应该在Doctr

php - 如何在 PHP ADODB 中回滚事务

我正在尝试在php(mysql驱动程序)中使用ADODB来使用数据库事务,尽管出于某种原因我无法使交易正常进行。目前代码看起来有点像这样(为了使事情顺序进行了简化)//StartDB-connection$db=NEWADOConnection('mysql');$db->debug=false;$db->disableBlobs=false;$db->PConnect($host,$login,$password,$database);ordie("Connectionfailed");//StartDB-transaction$db->autoCommit=false;//Acco

mysql - PyMySQL - 执行多条语句后回滚

我有一个MySQL(InnoDB)表,我需要在插入新数据之前截断它。但是,如果INSERT由于任何原因失败,我想回滚到截断之前的状态(即表不能为空)。使用Python3.5.0和PyMySQL0.7.5,我得出了以下结论。importpymysql.cursors#Connecttothedatabaseconnection=pymysql.connect(host='xxx',user='xxx',password='xxx',db='tmp',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor,autocommit=Fa

mysql - Liquibase 不会使用 MySQL 回滚失败的变更集

我在MySQL56上使用Liquibase3.4.1,并通过SpringBoot运行Liquibase。我有一个变更集,其中包括向现有表中添加一列。新的column具有带有简单选择的valueComputed属性。当我在选择变更集时犯了一个错误,并且迁移在那个变更集处停止了。然而,新列已提交到数据库但没有正确的值,而且真正糟糕的是,此变更集未标记为运行!下次我运行迁移时,Liquibase尝试再次执行变更集,但失败了,因为该列已经创建。当变更集失败时,为什么Liquibase不回滚事务?如何使我的变更集具有事务性?编辑:显然,MySQL在每个DDL命令之后提交。如果我在回滚标记中指定回

详解IDEA git 版本回滚

作者简介目录1.git分区2.未commit,进行回滚3.commit未push,进行回滚3.1.undocommit3.2.reset4.已commit&push,进行回滚1.git分区git的版本回滚其实就是回滚不同的分区,所以在聊git回滚之前我们有必要简单了解一下git的分区。git在本地有三大分区:工作区、暂存区、版本库。工作区:正在编写,还未add的部分,红色。暂存区:add后的代码,绿色。版本库:commit后的代码,灰色。在IDEA中,在loaclchanges中可以看到在工作区中和暂存区中的内容:版本库中的内容可以从log中看出来,log中可以看到committest这条提交

mysql存储过程打印错误信息并回滚

我正在尝试编写一个将先打印错误消息然后回滚的存储过程我试过了,但是不行我可以回滚它,但如果出现错误,它不会打印错误消息DELIMITERCREATEPROCEDUREtransaction_sp()BEGINDECLAREexithandlerforsqlexceptionBEGIN--ERROR--------------------------------------------------------------------------------------select"errormessage'%s'anderrorno'%d'"-------thispartinnotwor