Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

phát hiện lỗi mysql mà không thực thi nó

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:

  1. 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 .
  2. Chạy truy vấn trong phạm vi của GIAO DỊCH ngay lập tức được khôi phục.
  3. 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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có cách nào để khớp IP với IP + CIDR ngay từ truy vấn SELECT không?

  2. tìm kiếm vùng lân cận mã zip php / mysql

  3. Sử dụng JDeveloper với Cơ sở dữ liệu MySQL và Cơ sở dữ liệu Oracle trên AWS RDS, Phần 1

  4. CẬP NHẬT SQL với LIKE

  5. Tôi có thể kết hợp các API MySQL trong PHP không?