'MySQL 데이터베이스로 작업할 때 UPDATE 또는 DELETE 명령을 수행할 때 트리거되는 '오류 코드 1175'가 발생할 수 있습니다.'
이 게시물에서는 이 오류의 원인과 MySQL 서버를 사용하여 해결하는 방법에 대해 설명합니다.
'MySQL 오류 코드 1175'의 원인은 무엇입니까?
WHERE 절을 사용하지 않고 UPDATE 또는 DELETE 작업을 수행할 때 'MySQL 오류 코드 1175'가 발생합니다.
기본적으로 MySQL은 WHERE 절 없이 UPDATE 또는 DELETE 문을 실행하지 못하도록 하는 safe_mode라는 기능을 사용합니다. 이렇게 하면 대상에서 우발적인 데이터 손실을 방지할 수 있습니다.
따라서 safe_mode 기능이 활성화되면 MySQL은 WHERE 절을 포함하지 않는 DELETE 또는 UPDATE 작업에서 오류 코드 1175를 반환합니다.
예가 아래에 나와 있습니다.
업데이트 sakila.film 세트 제목 = '새 제목' ;이 경우 대상으로 지정할 행을 지정하지 않고 제목 열의 값을 변경하려고 합니다. 이로 인해 전체 테이블을 지정된 값으로 덮어쓸 수 있습니다. 따라서 MySQL은 이를 방지하고 다음과 같이 오류를 반환합니다.
MySQL은 Safe_Mode가 활성화되어 있는지 확인합니다.
safe_mode 기능의 상태는 sql_safe_updates 변수에 저장됩니다. 따라서 이 변수의 값을 가져와서 safe_mode 기능이 활성화되었는지 여부를 결정할 수 있습니다.
쿼리는 다음과 같습니다.
다음과 같은 변수 표시 'sql_safe_updates' ;쿼리는 다음과 같은 상태를 반환해야 합니다.
+------------------+-------+| 변수명 | 값 |
+------------------+-------+
| sql_safe_updates | 켜짐 |
+------------------+-------+
1 열 안에 세트 ( 0.00 비서 )
이 경우 세션에서 safe_mode 기능이 활성화된 것을 볼 수 있습니다.
'MySQL 오류 코드 1175'를 해결하는 방법
이러한 유형의 오류를 해결하는 가장 좋은 방법은 WHERE 절을 사용하는 것입니다. 그러나 어떤 경우에는 조건 없이 UPDATE 또는 DELETE를 수행해야 할 수도 있습니다.
이를 위해 세션에서 safe_mode 기능을 비활성화하여 쿼리를 실행할 수 있습니다. 그런 다음 SET 명령 뒤에 변수 이름과 설정하려는 값을 사용할 수 있습니다.
예를 들어 safe_mode를 비활성화하려면 sql_safe_updates 변수의 값을 0으로 설정합니다. 쿼리는 다음과 같습니다.
SET SQL_SAFE_UPDATES = 0 ;활성화하려면 다음과 같이 값을 1로 설정합니다.
SET SQL_SAFE_UPDATES = 1 ;MySQL Workbench에서 편집 -> 환경 설정 -> SQL 편집기로 이동하여 안전 모드 기능을 비활성화할 수 있습니다.
'안전한 업데이트' 기능을 비활성화하고 서버에 대한 세션을 다시 시작했습니다.
종료
이 게시물에서 UPDATE 또는 DELETE 문을 수행할 때 'MySQL 오류 코드 1175'의 원인을 배웠습니다. 또한 MySQL safe_mode 기능을 비활성화하여 오류를 해결하는 방법을 배웠습니다.