一尘不染

MySQL #1093 - 你不能在 FROM 子句中为更新指定目标表“giveaways”

sql

我试过了:

UPDATE giveaways SET winner = ‘1’ WHERE ID = (SELECT MAX(ID) FROM giveaways)
但它给出:

1093 - 您不能为更新中的FROM子句指定目标表“giveaways”


阅读 157

收藏
2021-05-30

共1个答案

一尘不染

这是因为您的更新可能是周期性的…如果更新该记录导致某些事情发生,从而导致WHERE条件发生FALSE怎么办?您知道情况并非如此,但引擎却并非如此。在操作中,表上也可能有相反的锁。

我认为你可以这样做(未经测试):

UPDATE
    giveaways
SET
    winner = '1'
ORDER BY
    id DESC
LIMIT 1
2021-05-30