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?
推荐答案
这是因为您的更新可能是周期性的...代码>假代码>?您知道情况并非如此,但引擎却并非如此.操作中也可能对表有相反的锁.
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
阅读更多
相关文章