草庐IT

auto-commit-interval

全部标签

PHP & MySQL : Simple code to implement Transaction - Commit & Rollback

我的平台:PHP和MySQL我的情况:我正在尝试在我的代码中实现交易。我试图遵循示例,但这并没有多大帮助。我正在运行3个查询,我想以这种方式编写一个事务,以便如果任何一个查询失败,整个事务应该回滚。我真的很感激一个简单、高效和非面向对象的PHP代码来实现这个目标。提前谢谢你。我的PHP代码://db_rescallsacustomfunctionthatperformsamysql_queryonthequery$res1=db_res("SELECTc1,c2FROMt1WHEREc5=3");$res2=db_res("UPDATEt2SETc1=5WHEREc2=10");$re

c++ - 如何启动将由 mysql_commit() 提交的 MySQL 事务

我正在编写一个使用MySQLCAPI的C++应用程序连接到数据库。MySQL服务器版本为5.6.19-log。我需要在一个事务中运行多个SQLUPDATE、INSERT和DELETE语句,以确保所有更改或没有更改应用。我在文档函数中找到了mysql_commit()和mysql_rollback()完成交易(提交或回滚),但我找不到开始交易的相应功能。有这样的功能吗?我是否遗漏了一些明显的东西?我使用mysql_real_query()运行UPDATE、INSERT和DELETE语句功能。我想我应该可以通过运行STARTTRANSACTION来开始交易使用相同mysql_real_qu

php - jQuery、ajax、php、mysql : auto-suggest form input

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我有一个mysql数据库表,其中包含每个美国城市、州、zip、纬度、经度。在我的网站页面上,我有一个城市的表单输入。当用户输入时,我想建议城市、州。目前有哪些好的做法/技术?(限制是jQuery、PHP、MYSQL)Solution

php - PDO::commit() 成功或失败

PHPPDO::commit()文档指出该方法在成功时返回TRUE,在失败时返回FALSE。这是指beginTransaction()和commit()之间的语句执行成功还是失败?例如,来自文档:$dbh->beginTransaction();$sql='INSERTINTOfruit(name,colour,calories)VALUES(?,?,?)';$sth=$dbh->prepare($sql);foreach($fruitsas$fruit){$sth->execute([$fruit->name,$fruit->colour,$fruit->calories,]);}$

PHP/MySQL - "BEGIN...COMMIT"不工作

我一直在寻找一种方法,在单个查询中将数据插入到两个数据库表中,如果其中一个失败,则两个数据库表都不会保存(我不想要孤立的数据)。我遇到了一个StackOverflow问题,该问题向我展示了如何使用BEGIN...COMMIT来完成此操作,但它根本不起作用。这是我设置的查询:$query="BEGIN;INSERTINTOcontent_subpages(title,url_referer)VALUES('$pagetitle','$url_referer');INSERTINTOccm_main_menu(sub_item,sub_item_link,sub_item_sort_ord

mysql - 在 MySQL 中重置 AUTO_INCREMENT 需要很长时间

ALTERTABLEtablenameAUTO_INCREMENT=10000000此查询需要很长时间才能更新。为什么?我需要优化这个查询。 最佳答案 ALTERTABLE会导致整个表的重建-如果您的表包含很多行,这可能需要很长时间。如果您只需要提高auto_increment值的值,最快的方法是插入一个虚拟行(然后在需要时删除该行)。这只需要几分之一秒,而ALTERTABLE对于大表可能需要几天时间。例如,假设我有一个表,其中有一个auto_incrementID列和其他列col1、col2...:insertintoautoin

mysql - 我怎样才能找到一个列是否在 mysql 中是 auto_increment?

我正在尝试检查我的mysql数据库information_schema以找出列的属性。我找不到关于哪些列是auto_increment的详细信息。有谁知道我可以在information_schemaDB中的哪个位置找到此信息? 最佳答案 查看COLUMNS表中的EXTRA列:select*fromCOLUMNSwhereTABLE_SCHEMA='yourschema'andTABLE_NAME='yourtable'andEXTRAlike'%auto_increment%' 关于my

mysql - 有什么理由不在数据库表的索引上使用 auto_increment 吗?

我接手了维护一个编码非常糟糕的电子商务网站的任务,我正在努力重构大量代码并尝试修复持续存在的错误。每个数据库插入(将商品添加到购物车等)都以grab_new_id函数开始,该函数计算表中的行数,然后从该数字开始查询数据库以查找未使用的索引号。除了在性能方面很糟糕(已经有40,000多行,索引被定期删除,所以有时需要几秒钟才能找到一个新的id)当两个操作同时执行时,这会定期中断,因为添加了两个条目具有重复的ID号。这对我来说似乎很愚蠢——为什么不在索引字段上使用自动递增呢?我已经对这两种方式进行了测试,并且在不指定索引ID的情况下向表中添加行(显然)要快很多倍。我的问题是:谁能想到原始程

mysql - InnoDB 中的 Auto_increment 值?

我一直在为一个项目使用InnoDB,并且依赖于auto_increment。这对大多数表来说不是问题,但对于删除的表来说,这可能是个问题:AUTO_INCREMENTHandlinginInnoDB特别是这部分:AUTO_INCREMENTcolumnnamedai_col:Afteraserverstartup,forthefirstinsertintoatablet,InnoDBexecutestheequivalentofthisstatement:SELECTMAX(ai_col)FROMtFORUPDATE;InnoDBincrementsbyonethevalueretri

多行插入中的 MySQL AUTO INCREMENT 行为

我认为我的问题的答案很明显,但由于找不到任何文档来支持它,所以我认为值得一问。至少为了记录。众所周知,每次执行INSERT语句时,AUTO_INCREMENT字段都会递增。它的值可以通过LAST_INSERT_ID()函数获取。MySQL'sManual中也提到了它对于多行插入,LAST_INSERT_ID()将返回插入行的第一个ID。我认为这是个好主意(真的很有用)。所以这是我的问题:我可以假设在多行的INSERTIGNOREINTO语句中,AUTO_INCREMENT字段的插入ID总是顺序的吗?请记住,由于IGNORE修饰符和MySQL服务器的多用户特性,可能会发生不同的情况。谢谢