草庐IT

update_query

全部标签

mysql - UPDATE 语句在 "query end state"

我们最近升级了运行在mysql服务器版本5.5.8上的mysql数据库。升级后,有时我们会看到简单的升级staements花费超过10秒。当我查看进程列表时,它显示所有进程都处于“查询结束”状态。有没有人对此有任何想法。UPDATEAccountsSETIPadd='xx.xx.xx.xx',updatedtime=NULLWHEREId=xx; 最佳答案 我在这里检查了一些解决方案,然后想到了这个link.添加这一行(如果它存在编辑它):innodb_flush_log_at_trx_commit=0在/etc/my.cnf中然而

MySQL 触发器 + SELECT FOR UPDATE 未锁定

我有一张包含开始时间和结束时间的预订表,任何两个预订都不能重叠。我需要检查新预订不会与任何现有预订重叠。然而,我们的负载非常高,因此存在竞争条件:可以成功插入两个重叠的预订,因为第一个预订是在第二个预订检查重叠之后插入的。我试图通过使用BEFOREINSERT数据库触发器锁定相关资源来解决这个问题。DELIMITER//CREATETRIGGERbooking_resource_double_booking_guardBEFOREINSERTONbooking_resourceFOREACHROWBEGINDECLAREoverlapping_booking_resource_idIN

mysql - Play +光滑 : How to do partial model updates?

我正在使用带有Slick2.0(带有MYSQL后端)的Play2.2.x来编写RESTAPI。我有一个User模型,其中包含许多字段,例如age、name、gender等。我想创建一个routePATCH/users/:id在正文中获取部分用户对象(即完整用户模型字段的子集)并更新用户信息。我很困惑如何实现这一目标:如何在Play2.2.x中使用PATCH动词?将部分用户对象解析为更新查询以在Slick2.0中执行的通用方法是什么?我期望执行单个SQL语句,例如更新用户setage=?,dob=?其中id=? 最佳答案 免责声明:我

mysql - 可以在 WHERE 中执行 UPDATE 子句吗?

我正在学习SQL注入(inject),并构建了一个没有SQL注入(inject)保护的Web应用程序(PHP+MYSQL(5.6))。简而言之,我的网络应用程序使用SELECT*FROMXXX.USERWHEREuser_name='${USERNAME}'ANDpassword='${PASSWORD}'处理登录(如果该sql只返回1行,则登录成功)。一开始,我发现输入USERNAMESayakiss'--然后是我的SQL:SELECT*FROMXXX.USERWHEREuser_name='Sayakiss'--'ANDpassword='${PASSWORD}'通过这种方式,攻击

mysql - "Packet for query is too large"在带有 mysql 的 java web 应用程序中

我有一个在ubuntu上的tomcat7上运行的Web应用程序,并连接到同一台机器上的mysql数据库。为了管理连接,我正在使用Hikari数据源并使用Hibernate作为ORM。运行服务器几天后,我开始在日志文件中遇到以下问题,并且所有请求开始失败Causedby:com.mysql.jdbc.PacketTooBigException:Packetforqueryistoolarge(1317>1024).Youcanchangethisvalueontheserverbysettingthemax_allowed_packet'variable.我已经在mysql服务器中设置了

java - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException : Cannot add or update a child row: a foreign key constraint fails

当我想插入一些数据时,我经常遇到错误项目类@Entity@NamedQueries({@NamedQuery(name="Project.findAll",query="SELECTpFROMProjectp"),@NamedQuery(name="Project.findByTitle",query="SELECTpFROMProjectpWHEREp.title=:title")})publicclassProjectimplementsSerializable{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privatei

mysql - Golang db.Query with sql join

我想查询一个问题及其所有答案。以下两个函数工作得很好。问题是我认为这应该在一个函数中通过一个查询来完成。(为简洁起见,我删除了错误检查)。funcQuestionById(idstring)(*Question,error){question:=new(Question)_=db.QueryRow("select*fromquestionwherequestion.id=?",id).Scan(&question.Id,&question.LessonId,&question.Body,&question.Type,)returnquestion,nil}funcAnswersByQu

mysql - 什么更好 : joins or multiple sub-select statements as part of one query

性能方面,什么更好?如果我的查询中有3或4个join语句或使用嵌入式select语句作为一个查询的一部分从我的数据库中提取相同的信息? 最佳答案 我会说联接更好,因为:它们更易于阅读。您可以更好地控制是要执行内部、左/右外部联接还是完全外部联接不能轻易滥用连接语句来创建可憎的查询使用联接,查询优化器可以更容易创建快速查询(如果内部选择很简单,结果可能相同,但对于更复杂的东西,联接会起作用更好)。嵌入的select只能模拟left/rightouterjoin。有时您无法使用联接来做某事,在这种情况下(并且只有在那时)您将不得不求助于

php - 大型数据集 : mysql_unbuffered_query with innodb?

基本上我需要对大型数据集进行操作,所以我开始考虑我可以使用mysql_unbuffered_query来不将所有结果加载到RAM中。但我读到,当我获取行时,我无法在同一个表上运行任何其他查询。我想知道如果表是innodb是否仍然如此?Innodb在执行mysql_unbuffered_query时是否使用行级锁定?伪代码是:$q=mysql_unbuffered_query("SELECT*FROMlargeTable");while($r=fetch($q)){if(somecondition)mysql_query("UPDATElargeTableSETfield=someval

mysql - 当我 SELECT multiple rows FOR UPDATE 时,我可以死锁吗?

在MySQL+InnoDB中,假设我有一个表和两个都执行“SELECT...FORUPDATE”操作的线程。假设两个SELECT语句最终都选择了多行,例如他们最终都选择了R42和R99行。有没有可能会死锁?我在想这种情况:第一个线程尝试锁定R42,然后锁定R99,第二个线程尝试锁定R99,然后锁定R42。如果我运气不好,这两个线程就会死锁。我在MySQL中读到Glossaryfor"deadlock"那个Adeadlockcanoccurwhenthetransactionslockrowsinmultipletables(throughstatementssuchasUPDATEor