MySQL选择重构

时间:2012-07-17 14:45:28

标签: mysql

在MySQL上,这不会运行:

delete from robottinosino where date = (select max(date) from robottinosino);

错误讯息:

  

ERROR 1093(HY000):您无法为目标表'robottinosino'指定   在FROM子句中更新

问题:

  • 为什么的? (强调“为什么”所以Q不会被错误地标记为“重复”)
  • 如何解决?

1 个答案:

答案 0 :(得分:5)

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

在你的情况下,应该允许查询,因为这种竞争没有任何危险,但是MySQL并不够聪明,无法解决这个问题。

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

相关问题