本文介绍了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
阅读更多
这篇关于MySQL #1093 - 您不能在 FROM 子句中指定目标表“赠品"进行更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!