Mã lỗi MySQL 1175 Trong khi CẬP NHẬT trong MySQL

Ma Loi Mysql 1175 Trong Khi Cap Nhat Trong Mysql



“Khi làm việc với cơ sở dữ liệu MySQL, bạn có thể gặp phải“ Mã lỗi 1175 ”được kích hoạt khi thực hiện hướng dẫn CẬP NHẬT hoặc XÓA.”

Bài đăng này sẽ thảo luận về nguyên nhân của lỗi này và cách chúng tôi có thể giải quyết nó bằng máy chủ MySQL.







Nguyên nhân nào gây ra “Mã lỗi MySQL 1175”?

“Mã lỗi MySQL 1175” xảy ra khi thực hiện thao tác CẬP NHẬT hoặc XÓA mà không sử dụng mệnh đề WHERE.



Theo mặc định, MySQL sử dụng một tính năng được gọi là safe_mode ngăn bạn thực hiện câu lệnh UPDATE hoặc DELETE mà không có mệnh đề WHERE. Điều này ngăn chặn bất kỳ mất mát dữ liệu ngẫu nhiên nào trên mục tiêu.



Do đó, khi tính năng safe_mode được kích hoạt, MySQL sẽ trả về mã lỗi 1175 trên bất kỳ thao tác DELETE hoặc UPDATE nào không bao gồm mệnh đề WHERE.





Một ví dụ đã được biểu diễn ở dưới:

cập nhật sakila.film bộ tiêu đề = 'Tiêu đề mới' ;



Trong trường hợp này, chúng tôi đang cố gắng thay đổi giá trị của cột tiêu đề mà không chỉ định hàng nào chúng tôi muốn nhắm mục tiêu. Điều này có thể dẫn đến việc chúng tôi ghi đè toàn bộ bảng với giá trị được chỉ định. Do đó, MySQL sẽ ngăn chặn điều này và trả về một lỗi như được hiển thị:

MySQL Kiểm tra xem Safe_Mode đã được bật chưa

Trạng thái của tính năng safe_mode được lưu trữ trong biến sql_safe_updates. Do đó, chúng tôi có thể tìm nạp giá trị của biến này để xác định xem tính năng safe_mode có được bật hay không.

Truy vấn như được hiển thị:

hiển thị các biến như 'sql_safe_updates' ;

Truy vấn sẽ trả về trạng thái như được hiển thị:

+ ------------------ + ------- +
| Variable_name | Giá trị |
+ ------------------ + ------- +
| sql_safe_updates | TRÊN |
+ ------------------ + ------- +
1 hàng ngang Trong bộ ( 0,00 giây )

Trong trường hợp này, chúng ta có thể thấy rằng tính năng safe_mode đã được bật trên phiên.

Cách giải quyết “Mã lỗi MySQL 1175”

Cách tốt nhất để giải quyết loại lỗi này là sử dụng mệnh đề WHERE. Tuy nhiên, trong một số trường hợp, chúng tôi có thể cần thực hiện CẬP NHẬT hoặc XÓA mà không cần điều kiện gì.

Để làm điều này, chúng tôi có thể tắt tính năng safe_mode trong phiên, cho phép chúng tôi thực hiện truy vấn. Sau đó, chúng ta có thể sử dụng lệnh SET theo sau là tên biến và giá trị mà chúng ta muốn đặt.

Ví dụ: để tắt safe_mode, chúng tôi đặt giá trị của biến sql_safe_updates thành 0. Truy vấn như được hiển thị:

SET SQL_SAFE_UPDATES = 0 ;

Để kích hoạt nó, hãy đặt giá trị thành 1 như sau:

SET SQL_SAFE_UPDATES = 1 ;

Trong MySQL Workbench, bạn có thể tắt tính năng safe_mode bằng cách điều hướng đến Edit-> Preferences -> SQL Editor

Đã tắt tính năng “Cập nhật an toàn” và khởi động lại phiên của bạn với máy chủ.

Chấm dứt

Bạn đã tìm hiểu nguyên nhân của “Mã lỗi MySQL 1175” trong bài đăng này khi thực hiện câu lệnh UPDATE hoặc DELETE. Bạn cũng đã học cách giải quyết lỗi bằng cách tắt tính năng safe_mode của MySQL.