UPDATE没有更新两列,但在同一行中更新了13个其他列

时间:2017-01-10 15:07:38

标签: sql mariadb centos7

我检查了这个问题:MySQL update query updates one column but not other column,但在这种情况下,问题是文件版本不正确。

在我的情况下,我在CentOS 7上的MariaDB 10.1.19中有一个自动运行的UPDATE查询,在17884次总运行(~99.99%成功率:)中运行了17882次。

修改了价值以保护无辜者。请注意,这是按原样自动生成的:

UPDATE table AS t
SET workflow_id=376280614,
    list="list@client",
    contact=t.contactdate,
    fail_8=(t.fail_8 * 0.1),
    fail_10=(t.fail_10 * 0.1),
    fail_12=(t.fail_12 * 0.1),
    fail_14=(t.fail_14 * 0.1),
    fail_16=(t.fail_16 * 0.1),
    fail_18=(t.fail_18 * 0.1),
    fail_sa=(t.fail_sa * 0.1),
    result='',
    contactdate=NULL,
    USER='',
         status="Verify",
         entrydate=now()
WHERE t.status='New'
    AND t.result='match'
    AND t.locked_for=''
    AND t.contactdate < (now()-interval 5 MINUTE)
    AND t.client_id=123
    AND t.campaign_id = 1

因此,在99,99%的案例中,更新有效,所有值都会更新。

然而,有两种情况,15列中的2列确实更新,即使它们应该有。而且,在这两种情况下,同一行的其他列进行了更新。这就好像某些东西阻止了更新某些列,但MariaDB或我们现有的任何日志记录都没有抛出任何错误。

知道怎么可能吗?如果有锁或死锁,行中什么都不会更新?

0 个答案:

没有答案