草庐IT

TRANSACTIONS

全部标签

Mysql按条件选择,除非满足另一个条件

我有一张记录交易的表格。我想选择所有恰好有4笔交易值(value)2000的ID,然后排除那些单笔交易值(value)2500的ID。SELECTt.tuserid,COUNT(*)ASCNTFROMtransactionstWHEREt.amt=2000GROUPBYt.tuseridHAVINGCNT=4;那部分很简单,但我不确定如何有效地排除任何拥有t.amt=2500的交易的人。对where子句的简单子(monad)查询是否最有效?SELECTt.tuserid,COUNT(*)ASCNTFROMtransactionstWHEREt.amt=2000ANDt.tuseridN

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

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

PHP/MYSQL如何获取事务中的last_insert_id

我有2个MySQL表表#1-容器:container_idINT(PKAI)start_timeDATETIME表#2-预订reservation_idINT(PKAI)reservation_timeDATETIMEcontainer_idINT(FK)PHP代码:mysqli_query($dbc,'SETAUTOCOMMIT=0');mysqli_query($dbc,'STARTTRANSACTION');$q1="INSERTINTOcontainer(start_time)VALUES('2012-07-0311:00:00')";$q2="INSERTINTOreserv

mysql - 使用 CFTRANSACTION 的多个数据源

我遇到了以下错误:cftransaction标签内所有数据库标签的数据源名称必须相同。这来自以下代码:transactionaction="begin"{try{vardata={};data.time=getTickCount();addToLog("Persist","Startedpersistoperations");doClientPersist();cleanUp(arguments.importId);addToLog("Persist","Completedthepersistoperationssuccessfully",((getTickCount()-data.t

MySql:在提交之前选择插入同一事务中的一行

在使用InnoDB的MySql中,在一个事务的上下文中,插入是否应该对以下选择可见?示例:$connect=newPDO('mysql:host='.getConfig()->get('DB_HOST').';dbname='.getConfig()->get('DB_NAME'),getConfig()->get('DB_USER'),getConfig()->get('DB_PASSWORD'),array(PDO::ATTR_PERSISTENT=>true));$connect->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEP

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 - SQL 查询查找本月未发生的行

我正在尝试查找上个月进行销售但本月未进行销售的卖家数量。我有一个有效的查询,但我认为它效率不高,而且我几个月来都不知道如何执行此操作。SELECTcount(distinctuser_id)asusersFROMtransactionsWHEREMONTH(date)=12ANDYEAR(date)=2015ANDtransactions.status='COMPLETED'ANDtransactions.amount>0ANDtransactions.user_idNOTIN(SELECTdistinctuser_idFROMtransactionsWHEREMONTH(date)=

php - MySQL/PHP 事务行为

给定:mysql_query("STARTTRANSACTION");mysql_query("UPDATEfoo='bar'");die();die()在我可以COMMIT或ROLLBACK之前停止事务。查看我的表,更新似乎没有发生,但如果我稍后在另一个脚本中运行查询,它们是否仍然是初始事务的一部分?在我COMMIT或ROLLBACK之前事务是否仍然“打开”? 最佳答案 如果die终止了与mysql的连接,那么是的,事务被关闭。如果您只是让交易悬而未决,尽管您会遇到麻烦。我会建议确保事务和提交在同一个mysql_query中,如果

MySQL事务难题

我需要在单个原子事务中执行多个插入。例如:starttransaction;insert...insert...commit;然而,当MySQL遇到错误时,它只会中止导致错误的特定语句。例如,如果第二个插入语句中有错误,提交仍将发生并且第一个插入语句将被记录。因此,当错误发生时,MySQL事务并不是真正的事务。为了克服这个问题,我使用了一个错误退出处理程序来回滚事务。现在交易默默地中止了,但我不知道是什么问题。所以这是你的难题:如何让MySQL在遇到错误时中止事务,并将错误代码传递给调用者? 最佳答案 HowcanIbothmake

mysql - ActiveRecord、MySQL 和嵌套事务——行为是什么?

Rails使用savepoints使用MySQL实现嵌套事务,据我所知,就原子数据更改而言,其语义与实际嵌套事务相同。这是真的吗?在代码中的任意时间调用“保存”怎么样?交易仍然保持开放状态,直到区block结束,对吧?使用嵌套事务/保存点时,行为是否有任何差异?还有什么需要注意的吗?[故意煽动口水战]我应该改用PostgresSQL吗? 最佳答案 是的,这是真的,唯一具有真正嵌套事务的数据库是MSSQLServer是的,即使您在任意时间调用保存,事务仍保持打开状态,但是,如果在嵌套事务中引发回滚异常,则它不会导致外部事务的全局回滚(