草庐IT

update_many

全部标签

mysql - INSERT...ON DUPLICATE KEY UPDATE..... 有两个关键字段

我有一个包含三个字段的表字段一field_two字段三我想做一个插入/更新,但不是检查其中一个关键字段是否已经存在,我需要检查(field_one,field_two)组合是否已经在数据库中,如果是,然后更新插入。 最佳答案 在您的表(field_one,field_two)上创建唯一索引your_index_name(seedocs)并使用INSERT...ONDUPLICATEKEYUPDATE.MySQL会自动完成剩下的工作。 关于mysql-INSERT...ONDUPLICAT

mysql - 为什么 ON DUPLICATE KEY UPDATE 语句将值增加 2 而不是 1?

什么会导致ONDUPLICATEKEYUPDATE语句将值增加2而不是1,这是我使用的SQL:INSERTINTObanner_view(banner_id,date,views)VALUES('10',CURDATE(),'1')ONDUPLICATEKEYUPDATEviews=(views+1)这是数据库架构:CREATETABLE`banner_view`(`banner_id`int(11)UNSIGNEDNOTNULL,`date`dateNOTNULL,`views`int(10)UNSIGNEDNOTNULL,PRIMARYKEY(`banner_id`,`date`)

mysql - ActiveRecord 为与 MySQL 的 has_and_belongs_to_many 关系生成昂贵的 DESCRIBE 查询

我们有一个刚刚开始开发的Rails3应用程序。我们在两个模型之间使用has_and_belongs_to_many关系。每次我们使用其中一个模型时,ActiveRecord都会在连接表上执行一个DESCRIBE查询,例如:SQL(1.1ms)describe`articles_tags`这些查询相对昂贵(也就是说,比实际的SELECT查询慢10倍以上)并且执行得非常频繁。它们对我来说似乎不是必需的:由于has_and_belongs_to_many关系,该表是自动生成的,因此ActiveRecord应该已经知道它的结构(只是一个article_id和一个tag_id列)。这种行为有充分

mysql - 我如何重写这个 MySQL 查询,这样它就不会抛出这个错误 : You can't specify target table 'crawlLog' for update in FROM clause?

我正在尝试从companies表中获取一个ID,但该ID还不在crawlLog表中。然后我需要将该companyId插入到crawlLog表中。我需要在一次调用中执行此操作,这样并行爬虫就不会在其他爬虫选择了url但尚未将其插入爬虫日志后提取相同的url。我不想因为生成的其他问题而锁定表。我从下面的两个查询中得到这个错误:Youcan'tspecifytargettable'crawlLog'forupdateinFROMclause这是我尝试做同样事情的两个查询。INSERTINTOcrawlLog(companyId,timeStartCrawling)VALUES((SELECT

mysql - UPDATE 查询更改了没有 WHERE 子句但有 AND 子句的行 - 为什么?

我运行了以下查询,它应该有一个where子句但我忘了添加它:UPDATEtblFormElementInstancesasfeiJOINtblFormElementsasfeusing(intFormElementId)SETfei.intStep=1ANDfei.intDivisionId=1ORfei.intDivisionIdISNULL);MySQL返回以下消息:--查询成功,影响42行(0.06秒)--匹配行数:94更改数:42警告数:0我原以为它会抛出一个语法错误,但它并没有。此外,该表中有96行,具有不同的intDivisionIds(即不仅仅是1或NULL),这表明一些

mysql - DBIx::Class:仅选择 has_many 大于零的结果

在我们的MySQL数据库中,我有一个third_party_accounts表,它has_manythird_party_campaigns。但是,并非所有帐户都会有广告系列。我想在DBIx::Class中做的是只选择那些有一个或多个事件的帐户。我发现最简单的如下:my$third_party_account_rs=$schema->resultset('ThirdPartyAccount');my$with_campaigns_rs=$third_party_account_rs->search({third_party_account_id=>\'ISNOTNULL'},{join

mysql启动时报错:Starting MySQL... ERROR! The server quit without updating PID file快速解决

mysql启动时报错:StartingMySQL…ERROR!TheserverquitwithoutupdatingPIDfile(/opt/mysql/data/mysql.pid)的解决方法出现问题的可能性1、可能是/opt/mysql/data/数据目录mysql用户没有权限(修改数据目录的权限)解决方法:给予权限,执行“chown-Rmysql.mysql/opt/mysql/data”然后重新启动mysqld2、可能进程里已经存在mysql进程解决方法:用命令“ps-ef|grepmysqld”查看是否有mysqld进程,如果有使用“kill-9进程号”杀死,然后重新启动mysql

mysql - ON DUPLICATE KEY UPDATE 导致外键约束错误

我搜索了StackOverflow,但找不到我的具体问题的答案。最近我非常喜欢用列表更新记录,使用“INSERTINTO...ONDUPLICATEKEYUPDATE”。但是,我遇到了以下查询的问题:INSERTINTOitens(prod_id,qtd)VALUES(410,1),(442,-1)ONDUPLICATEKEYUPDATEqtd=qtd+VALUES(qtd)这导致错误:“无法添加或更新子行:外键约束失败。”这是有问题的表的结构。“carrinho_id”是一个外键。我对我没有尝试使用外键做任何事情这一事实感到困惑。我只是想更新数量。CREATETABLEIFNOTEX

mysql - MySQL 查询的 PostgreSQL UPDATE 等价物

我有一个简单的MySQL查询,我想将其转换为PostgreSQL。3天后我终于退出了,因为我不明白这里出了什么问题:UPDATEwebUsersu,(SELECTIFNULL(count(s.id),0)ASid,p.associatedUserIdFROMpool_workerpLEFTJOINsharessONp.username=s.usernameWHEREs.our_result='Y'GROUPBYp.associatedUserId)aSETshares_this_round=a.idWHEREu.id=a.associatedUserId我试图转换它,但它说SET出错。

MySQL DELETE INSERT 而不是 UPDATE

有没有一种方法可以使用删除->插入而不是使用第一条记录中的字段进行更新?更新示例:TABLE---------ID(int)|VAL_1(VARCHAR)|VAL_2(VARCHAR)消息1:INSERTINTOTABLEVALUES(1,"firstmessage","someval");消息2:UPDATETABLESETID=2WHEREID=1相反,我需要删除第一条记录并插入一条新记录。有没有办法使用这样的消息:INSERTINTOTABLEVALUES(2,VAL_1fromRECORDWHEREID=1,VAL_2fromtherecordWHEREID=1);DELETE