MySQL #1093 - 您不能在 FROM 子句中指定目标表“赠品"进行更新
我试过了:
UPDATE giveaways SET winner = '1' WHERE ID = (SELECT MAX(ID) FROM giveaways)
但它给出了:
#1093 - 您不能在 FROM
子句中指定目标表赠品"进行更新
#1093 - You can't specify target table 'giveaways' for update in
FROM
clause
这个文章 似乎相关,但我无法使其适应我的查询.我怎样才能让它工作?
This article seems relevant but I can't adapt it to my query. How can I get it to work?
推荐答案
这是因为你的更新可能是周期性的......如果更新该记录会导致发生导致 WHERE
条件 <代码>错误代码>?你知道情况并非如此,但引擎不会.操作中也可能在桌子上存在相反的锁.
This is because your update could be cyclical... what if updating that record causes something to happen which made the WHERE
condition FALSE
? You know that isn't the case, but the engine doesn't. There also could be opposing locks on the table in the operation.
我认为你可以这样做(未经测试):
I would think you could do it like this (untested):
UPDATE
giveaways
SET
winner = '1'
ORDER BY
id DESC
LIMIT 1
阅读更多
相关文章