草庐IT

AUTOCOMMIT

全部标签

php - 提交或回滚是否在 PHP 的 mysqli 中隐式打开自动提交?

我在PHP中使用mysqli类进行事务处理,我发现autocommit()的文档非常不完整。我从示例中推断,将autocommit设置为false会隐式执行“开始事务”。这个对吗?更重要的是,我没有看到autocommit在哪里重置为true,我认为它应该在事务完成后重置。这会在调用commit()或rollback()方法时自动发生吗? 最佳答案 它不会隐式执行STARTTRANSACTION,因为它执行临时事务:http://dev.mysql.com/doc/refman/5.0/en/commit.html使用autocom

java - 调用 createEntityManagerFactory 时为 "You cannot set autocommit during a managed transaction"

我正在尝试通过在我的应用程序中分离模式来实现Multi-Tenancy。为此,我有一个Tenant实体,其中包含一个StringschemaName,并且我有一个SingletonStartupEJB在启动时创建EntityManagerFactory的映射;一个工厂分配给每个Tenant。这是我的EJB:@Startup@SingletonpublicclassTenantManagementServiceImplimplementsTenantManagementService{privateMapentityManagerFactoryMap;@PersistenceContex

java - kafka消费者自动提交是如何工作的?

我正在阅读thisone:AutomaticCommitTheeasiestwaytocommitoffsetsistoallowtheconsumertodoitforyou.Ifyouconfigureenable.auto.commit=true,theneveryfivesecondstheconsumerwillcommitthelargestoffsetyourclientreceivedfrompoll().Thefive-secondintervalisthedefaultandiscontrolledbysettingauto.commit.interval.ms.J

python - 使用 Python 和 SQL 在 SQL INSERT & "commit"之后未显示新行

我在Python中创建了一个循环,该循环调用自身以反复检查数据库中的新条目。第一次执行时,所有受影响的行都显示正常。同时,我向数据库中添加了更多行。在我的循环中的下一个查询中,没有显示新行。这是我的查询循环:defloop():globalmysqlconfig#username,passwd...tbd=[]#thisiswhereIsavetheresultconn=MySQLdb.connect(**mysqlconfig)conn.autocommit(True)c=conn.cursor()c.execute("SELECTid,messageFROMtasksWHEREda

java - JDBC-c3p0- hibernate -setAutocommit,有人可以帮我澄清一下吗

我的提问的基本根源来自于这种观察。当我使用Hibernate并进行任何查询时,我在MySQL日志中得到以下内容:SETautocommit=0insertintoSimpleNamedEntity(name,version)values(null,0)commitSETautocommit=1现在,我进行了一些研究(下面的参考文献会添加更多的内容,但看起来似乎不够好:-)),这似乎是一个相当经典的问题。我对各种级别的体系结构(mysql配置,jdbc,连接池,休眠)进行了许多测试,以更好地了解事物的工作方式,结果我变得更加困惑,所以这里有几个问题:有人可以确认自动提交是否对性能产生负面

mysql - 镜像表 : triggers, 死锁和隐式提交

我有2个相似的表,例如A和B。我想将A中的插入复制到B,并将B中的插入复制到A以集成两个用户系统。我在每一个上都配置了“插入触发器后”。示例:DELIMITER$$CREATEDEFINER=`root`@`localhost`TRIGGER`after_A_INSERT`AFTERINSERTON`A`FOREACHROWBEGININSERTINTO`B`SET`id`=NEW.`id`,`name`=NEW.`name`;END$$DELIMITER;DELIMITER$$CREATEDEFINER=`root`@`localhost`TRIGGER`after_B_INSERT

python pymysql设置autocommit false失败

我的脚本从文件中读取MYSQLUPDATE查询,然后应该使用autocommit=0立即执行它们。但是,如果我删除conn.commit()它仍然会一个接一个地运行,尽管我没有promise。错误在哪里?importpymysqlconn=pymysql.connect(host='x',unix_socket='/tmp/mysql.sock',user='x',passwd='x',db='x')fileHandle=open('mysqlout.txt')fileList=fileHandle.readlines()fileHandle.close()i=1weiter=inpu

mysql - 在事务中设置 autocommit=0 有什么作用吗?

我正在审查另一位开发人员的代码。他有一个在MySQL事务开始时显式添加setautocommit=0的提交。这会导致session中其他非事务性查询出现问题。在事务中添加setautocommit=0对那个事务有什么作用吗?我认为它不会,因为无论如何事务都会隐式地执行此操作。[对于这次提交,我能想到的唯一理由可能是数据库曾经使用过MyISAM(相对于当前的InnoDB),这可能是模仿前者事务的一种方式?] 最佳答案 如果事务处于事件状态,则它不受SETautocommit=0的影响。否则,如果autocommit的前一个值为1,则S

mysql - MySQL 用户定义的函数是调用它们的语句的自动提交事务的一部分吗?

假设我有一些InnoDB(或其他事务感知)表,以及一个用户定义的函数MyFunction(),它在计算其返回值的过程中从这些表中读取或写入。进一步假设启用了自动提交(即MySQL以其默认方式运行)。如果我发布(例如)声明:UPDATEsome_tableSETcol_a=MyFunction(col_b)WHEREcol_c='apples';所有表访问(some_table的显式更新和还有任何读/写MyFunction()正在做)单个事务的一部分?或MyFunction()中的各个DML语句是否都在执行时自动提交...然后对some_table的缓存更改作为另一个单独的事务应用?或.

php - 事务和异常

我想我会问,因为我不确定这个操作的结果没有处理原始性质的事务。当PHP抛出异常停止执行时,DB事务是如何处理的。它会自动回滚,因为与数据库的连接已从PHP中删除,还是会保持锁定状态?伪代码TXBeginSelectBalanceLogicinPHPExceptionRollbackCommit注意:我知道最佳编码实践要求我回滚捕获。这只是我想知道的一个行为问题。 最佳答案 要确定当连接(session)终止时MySQL如何处理事务,我们必须考虑是否启用了autocommit模式。如果自动提交被禁用并且连接在提交之前终止,那么最后打开