草庐IT

TRANSACTIONS

全部标签

php - PDO 事务不工作

我有一个正在尝试运行的PDO事务,第一个查询创建一个开关,第二个查询将有关它的信息添加到另一个表。我的问题是,由于某种原因,第一个查询没有正确执行,但事务已提交。(我使用以下PDO类http://culttt.com/2012/10/01/roll-your-own-pdo-php-class/)try{//Insertintorequiredtables$db->beginTransaction();$db->Query("INSERTINTOfirewall(Name)VALUES(:Name)");$db->bind(':Name',$Name);$db->execute();$

php - PDO 事务不工作

我有一个正在尝试运行的PDO事务,第一个查询创建一个开关,第二个查询将有关它的信息添加到另一个表。我的问题是,由于某种原因,第一个查询没有正确执行,但事务已提交。(我使用以下PDO类http://culttt.com/2012/10/01/roll-your-own-pdo-php-class/)try{//Insertintorequiredtables$db->beginTransaction();$db->Query("INSERTINTOfirewall(Name)VALUES(:Name)");$db->bind(':Name',$Name);$db->execute();$

.net - 如何将 TransactionScope 与 MySql 和 Entity Framework 一起使用? (获取多个同时连接...当前不支持错误)

我有一个新的.NET4.0控制台应用程序,它使用:MySql6.4.4.0EntityFramework4.2(代码优先)VisualStudio2010到目前为止,这是可行的。我可以很好地添加和读取数据库。现在,当我添加TransactionScope时,如下例所示:publicstaticvoidTestInsert(){using(TransactionScopescope=newTransactionScope()){using(varcontext=newMyDbContext()){//CreateatestuserDateTimedt=DateTime.Now;varus

.net - 如何将 TransactionScope 与 MySql 和 Entity Framework 一起使用? (获取多个同时连接...当前不支持错误)

我有一个新的.NET4.0控制台应用程序,它使用:MySql6.4.4.0EntityFramework4.2(代码优先)VisualStudio2010到目前为止,这是可行的。我可以很好地添加和读取数据库。现在,当我添加TransactionScope时,如下例所示:publicstaticvoidTestInsert(){using(TransactionScopescope=newTransactionScope()){using(varcontext=newMyDbContext()){//CreateatestuserDateTimedt=DateTime.Now;varus

MySQL InnoDB 锁定连接行

"SELECT...FORUPDATE"是否锁定MySQL中的连接行?如果是这样,是否可以禁用此行为?文档中没有关于此的内容。我已经看到Oracle支持"SELECT...FORUPDATEOFtable_name"其中table_name是主表或受影响的行将被锁定的连接表之一,但我从来没有在MySQL的上下文中看到了这一点。 最佳答案 见thisMySQLdocpage.它说:Alockingread,anUPDATE,oraDELETEgenerallysetrecordlocksoneveryindexrecordthatis

MySQL InnoDB 锁定连接行

"SELECT...FORUPDATE"是否锁定MySQL中的连接行?如果是这样,是否可以禁用此行为?文档中没有关于此的内容。我已经看到Oracle支持"SELECT...FORUPDATEOFtable_name"其中table_name是主表或受影响的行将被锁定的连接表之一,但我从来没有在MySQL的上下文中看到了这一点。 最佳答案 见thisMySQLdocpage.它说:Alockingread,anUPDATE,oraDELETEgenerallysetrecordlocksoneveryindexrecordthatis

php - mysql CREATE临时表+事务导致死锁

我有一个复杂的查询,它创建了一个可能需要5秒或更长时间才能运行的临时表。当同时在类似表上运行另一个事务时,这似乎会导致死锁。我无法在本地复制,但在生产中,我可以每隔几天让它发生1次。(我记录了mysql错误)查询非常复杂(显示在页面底部);但你不需要理解逻辑;只是它从一堆表和连接中进行选择,并且可能需要一段时间才能运行。我还有一个事务可以插入到许多相同的表中。我偶尔会收到mysql错误1213:Deadlockfoundwhentryingtogetlock;尝试重启事务。这是交易的伪代码STARTTRANSACTIONINSERTINTOphppos_salesINSERTMANYR

php - mysql CREATE临时表+事务导致死锁

我有一个复杂的查询,它创建了一个可能需要5秒或更长时间才能运行的临时表。当同时在类似表上运行另一个事务时,这似乎会导致死锁。我无法在本地复制,但在生产中,我可以每隔几天让它发生1次。(我记录了mysql错误)查询非常复杂(显示在页面底部);但你不需要理解逻辑;只是它从一堆表和连接中进行选择,并且可能需要一段时间才能运行。我还有一个事务可以插入到许多相同的表中。我偶尔会收到mysql错误1213:Deadlockfoundwhentryingtogetlock;尝试重启事务。这是交易的伪代码STARTTRANSACTIONINSERTINTOphppos_salesINSERTMANYR

mysql - 如何检测 Mysql/innodb 中的死锁?

我知道在Innodb中使用事务时不可避免地会发生死锁,如果应用程序代码正确处理死锁是无害的——“只要再试一次”,正如手册所说。所以我想知道-您如何检测死锁?死锁是否会发出一些特殊的mysql错误号?如果重要的话,我正在使用PHP的mysqli扩展。谢谢。编辑:找到解决方案,查看评论 最佳答案 来自MySQL命令行客户端(不是查询浏览器)的“SHOWENGINEINNODBSTATUS”将为您提供有关死锁的信息。死锁也可能由未提交的事务(通常是程序错误)引起,运行未提交事务的人不会看到问题,因为他们可以正常工作(通过他们的数据不会提交

mysql - 如何检测 Mysql/innodb 中的死锁?

我知道在Innodb中使用事务时不可避免地会发生死锁,如果应用程序代码正确处理死锁是无害的——“只要再试一次”,正如手册所说。所以我想知道-您如何检测死锁?死锁是否会发出一些特殊的mysql错误号?如果重要的话,我正在使用PHP的mysqli扩展。谢谢。编辑:找到解决方案,查看评论 最佳答案 来自MySQL命令行客户端(不是查询浏览器)的“SHOWENGINEINNODBSTATUS”将为您提供有关死锁的信息。死锁也可能由未提交的事务(通常是程序错误)引起,运行未提交事务的人不会看到问题,因为他们可以正常工作(通过他们的数据不会提交