MySQL:“LIMIT 5”会引发警告

时间:2012-07-09 13:56:08

标签: mysql sql warnings

我一直在MySQL控制台中执行以下查询:

INSERT INTO pixel_window 
   SELECT id 
      FROM pixels 
         WHERE pixel_id='type2' 
            ORDER BY id DESC 
               LIMIT 5;

得到了:

Query OK, 5 rows affected, 1 warning (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
  Level: Note
   Code: 1592
Message: Statement may not be safe to log in statement format.
1 row in set (0.00 sec)

我在查询中玩了一点,发现当省略LIMIT时警告消失。

这个警告意味着什么?为什么LIMIT在此子查询中存在问题?

1 个答案:

答案 0 :(得分:6)

这被认为是一个错误。

如果未在更新中定义“order by”子句,则可能会引发警告。 在您的情况下,它被认为是安全的,因为您按ID排序(asuming id是一个唯一的id?)

在此处阅读有关错误报告的更多信息:http://bugs.mysql.com/bug.php?id=42415