GIẢI THÍCH thực hiện thủ thuật nếu bạn đang chạy MySQL 5.6 trở lên.
explain update whatever;
Nếu truy vấn ok, nó sẽ hiển thị kế hoạch thực thi. Ngược lại, nó trả về lỗi cú pháp.
Nếu bạn đang chạy phiên bản MySQL thấp hơn, tôi thấy một số tùy chọn:
- Tùy chọn được đề xuất :Chuẩn bị sẵn cơ sở dữ liệu thử nghiệm phản ánh cơ sở dữ liệu sản xuất của bạn ít nhất là về cấu trúc . Lý tưởng nhất là nó có chứa dữ liệu thử nghiệm để xác minh rằng truy vấn không chỉ đúng về mặt cú pháp; nhưng nó hoạt động như mong đợi .
- Chạy truy vấn trong phạm vi của GIAO DỊCH ngay lập tức được khôi phục.
- Chạy một phiên bản của truy vấn được sửa đổi một chút để phù hợp với KHÔNG CÓ ROWS.
Ví dụ:
update table set col1 = @val1 where col2 = @val2;
Trở thành:
update table set col1 = @val1 where (col2 = @val2) and 1=0;
Vì vậy, nếu bạn đang chạy 5.6 trở lên, EXPLAIN
lừa là gọn gàng. Nếu không, các tùy chọn 2 và 3 từ danh sách cũng là những thủ thuật gọn gàng (ish). Tuy nhiên, nhìn chung bạn nên đạt được một sự phát triển máy chủ có đang trong quá trình phát triển của bạn vẫn truy vấn.