2012-07-09 35 views
5

Tôi đã thực hiện truy vấn sau đây trong MySQL console:MySQL: "LIMIT 5" gây ra cảnh báo

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

Và có:

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) 

tôi đã chơi một chút với các truy vấn, và phát hiện ra rằng khi LIMIT bị bỏ qua, cảnh báo sẽ biến mất.

Cảnh báo này có nghĩa là gì? Tại sao LIMIT có sự cố trong truy vấn phụ này?

+0

Tôi nghĩ rằng đây có liên quan đến các bản ghi redo của mysql, trong trường hợp xảy ra sự cố, chúng lưu trữ mọi thứ bạn đang làm ... Vì vậy, việc ghi nhật ký như thế này có thể gây nhầm lẫn cho việc khôi phục (trực giác) – Sebas

Trả lời

6

Nó được coi là lỗi.

Cảnh báo có thể được ném khi bạn không xác định mệnh đề 'đặt hàng bởi' trong bản cập nhật của mình. Trong trường hợp của bạn, nó được coi là an toàn kể từ khi bạn đặt hàng bằng ID (asuming id là một id duy nhất?)

Tìm hiểu thêm về các báo cáo lỗi ở đây: http://bugs.mysql.com/bug.php?id=42415

Các vấn đề liên quan