0

在 MySQL 上,这不会运行:

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

错误信息:

ERROR 1093 (HY000): 您不能在 FROM 子句中指定目标表 'robottinosino' 进行更新

问题:

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

1 回答 1

5

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

在您的情况下,应该允许查询,因为这场比赛没有任何危险,但 MySQL 不够聪明,无法解决这个问题。

这里有一个解决方法:MySQL 错误 1093 - 无法在 FROM 子句中指定要更新的目标表

于 2012-07-17T14:48:38.647 回答