2012-07-09 12 views
5

he estado ejecutando la consulta siguiente en la consola de MySQL:MySQL: "LIMIT 5" hace que las advertencias

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

Y consiguieron:

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) 

He jugado un poco con la consulta, y descubrió que cuando se omite LIMIT, la advertencia desaparece.

¿Qué significa esta advertencia? ¿Por qué es LIMIT un problema en esta subconsulta?

+0

Creo que esto está relacionado con el registro de rehacer de MySQL, en caso de falla almacenan todo lo que estás haciendo ... Por lo tanto, iniciar sesión de esta manera podría confundir la recuperación (intuición) – Sebas

Respuesta

6

Se lo considera un error.

Se puede lanzar una advertencia cuando no define la cláusula 'ordenar por' en su actualización. En su caso, se considera seguro ya que usted ordena por ID (Asumiendo ID es un identificador único?)

Leer más en la notificación de errores aquí: http://bugs.mysql.com/bug.php?id=42415

Cuestiones relacionadas