草庐IT

TRANSACTIONS

全部标签

mysql - @Never 事务属性非常慢

我已经编写了一种基准测试,用于评估事务属性的不同组合如何影响JavaEE程序的性能。基准测试从带有“X”注释的方法调用带有“Y”注释的方法。我的基准交易涵盖了银行转账的情况:@Required@RequiresNewtheCallerMethod()->updateAccount(Accountacc)@RequiresNew->updateOwner(Companyc)@RequiresNew->addLogEntry(Transfert)因此,在callerMethod事务的上下文中,容器必须暂停调用者的事务、开始新的事务、更新帐户、提交、切换到调用者的、暂停、开始新的事务、更新公

php - 在封装 PDO 事务中使用闭包不起作用。为什么?

我目前在封装PDO事务以便于使用时遇到问题;事务执行后,没有发生数据库更改!我的想法是只提供在PDO事务中需要执行的参数和可调用事务。protectedexecuteTransaction方法定义了PDO事务的封装,如下所示。而客户端方法是使用executeTransaction方法的getNextWidWithLock。我尝试将交易从关闭中移出并且成功了!它似乎没有将更改提交到数据库的原因可能是什么。classParentRepository{.../***Executesatransactionwithlogging.*@param[type]$datadatatobepassed

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

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

带表锁定的 Mysql 事务

我需要使用表锁定(写入)并同时更新一些表,所以我同时需要事务,因为锁定不是事务安全的。从mysql文档中,我阅读了以下内容https://dev.mysql.com/doc/refman/5.6/en/lock-tables-and-transactions.htmlThecorrectwaytouseLOCKTABLESandUNLOCKTABLESwithtransactionaltables,suchasInnoDBtables,istobeginatransactionwithSETautocommit=0(notSTARTTRANSACTION)followedbyLOCKT

mysql - 在 Django 程序中的数百个 MySQL UPDATE 语句期间禁用自动提交

在Django程序中,如何在数百个UPDATE之前显式禁用自动事务管理并在UPDATE完成后启用它?我调查了http://docs.djangoproject.com/en/dev/topics/db/transactions/但没有找到任何线索。我试着把下面的代码放在开头settings.DISABLE_TRANSACTION_MANAGEMENT=True我也试过cursor=connection.cursor()cursor.execute('SETSESSIONautocommit=0;')...UPDATE...cursor.execute('SETSESSIONautoco

MySQL 事务 : multiple concurrent transactions and data integrity

我在一个相当复杂的Web应用程序中使用事务管理跨多个MySQLInnoDB表的数据。简而言之,给定交易的工作方式如下:从“user_point_totals”表中的一行读取数据各种阴谋计算用户的新总分应该是多少在“user_point_totals”表中创建一个新条目以反射(reflect)更新后的总数假设用户A执行了一些与点数相关的操作,第1步被执行,执行线程将用户的点数总计读入内存,然后应用程序开始计算新的总计点数。同时,用户B执行了一个对用户A的总积分有影响的Action,另一笔交易开始了;但是,第一个事务尚未完成,因此第二个线程获得与第一个事务相同的点总值作为起点(来自同一表行

mysql - 求和返回字符串,仅适用于 postgresql

我正在将数据库从mysql迁移到postgres。按照postgres文档,迁移本身没问题。现在,我正在修复我们特定的mysql查询。在某种程度上,我们现在有这样的东西:select(%(SUM(CASEWHENincomeTHENvalueELSE0END)ASrents,SUM(CASEWHENnotincomeTHENvalueELSE0END)ASexpenses))在mysql中,它是一个sum(if(incomes,value,0))等,它按预期工作。对于PG,它返回一个字符串而不是数字。我已经检查过数据库,数据类型是正确的。除了转换to_d或to_f之外,我还能做什么?编

php - 我需要(我永远需要)锁定共享模式吗?在交易中进行更新?

我在努力理解如何最好地编写我的代码和查询直奔问题:我是否需要或是否需要在交易中显式地写LOCKINSHAREDMODE或FORUPDATE(除了READ未提交的)?如果我有外键,我是否需要显式选择行以将锁应用到这些行,或者外键定义就足够了? 最佳答案 简短的回答:绝对是。完整答案:这取决于用例。也许在大多数情况下,InnoDb使用的默认锁就足够了。这些锁确保您的数据在事务中是一致的。但这是一个需要使用SELECT...FORUPDATE锁定的场景:假设您正在制作一个Web应用程序,其中您的session数据存储在数据库中。Racec

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

mysql - SQL,如何测试并发事务

假设有一个表something包含列id,foo,bar,baz,qux,norf,updated_at并且想要测试可以的各种用例当涉及到在此表上工作的并发事务时发生,例如:用例:如果您检查以下事务T1和T2,例如如何测试从插入的事务隔离级别>T2将在第二个SELECT中可用,假设T2将在T1?中的第一个和第二个SELECT之间提交所以我想在这里测试一些幻读的变体,尽管SELECT语句是不同的?我唯一的想法是在两个SELECT语句之间使用SELECTPG_SLEEP(N);并打开两个数据库连接(例如某些数据库客户端的2个实例,例如PgAdmin),其中一个用于处理T1和一个处理T2而不