首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL选择重构

问MySQL选择重构
EN

Stack Overflow用户
提问于 2012-07-17 14:45:27
回答 1查看 75关注 0票数 0

在MySQL上,这不会运行:

代码语言:javascript
复制
delete from robottinosino where date = (select max(date) from robottinosino);

错误消息:

错误1093 (HY000):您不能为update子句指定目标表‘for’

问题:

  • 为什么?(强调“为什么”,这样Q就不会被不准确地标记为“重复”)
  • 怎么修呢?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-17 14:48:38

MySQL不允许您从也要从中选择的表中删除。在许多情况下,这是一种竞争条件--在查询的select部分有机会检索记录之前,您可以从表中删除记录。

在您的示例中,应该允许查询,因为这一竞争没有任何危险,但是MySQL不够聪明,无法解决这个问题。

这里有一个解决办法:MySQL Error 1093 - Can't specify target table for update in FROM clause

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11525077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档