반응형
MySQL에서 DELETE 또는 UPDATE 쿼리 시 발생할 수 있는 오류다.
원인
이 오류는 MySQL의 safe update 모드로 인해 발생할 수 있는 것으로, UPDATE나 DELETE 쿼리에
WHERE 절에서 기본 키 열을 사용하지 않는 경우, UPDATE, DELETE 명령을 수행하지 못하게 한다.
즉, 실수로 모든 행을 업데이트 해버리거나 삭제하는 것을 방지하기 위해 설정을 걸어둔 것이다.
방법1. 기본키를 사용한 WHERE 절을 추가한다.
가장 간단한 방법이다. SQL문에 WHERE 절을 추가하면 safe update 모드를 무시하고 쿼리를 수행할 수 있다.
예제)
-- 오류가 발생할 수 있는 쿼리
UPDATE my_table
SET column_name = new_value
-- WHERE 절을 추가
UPDATE my_table
SET column_name = new_value
WHERE primary_key_column = my_value;
방법2. safe update 모드를 비활성화 한다.
safe update를 비활성화 하면 사용자가 만약 실수를 한다면 테이블 전체에 영향을 줄 수 있으니 조심하도록 한다.
-- 비활성화
SET SQL_SAFE_UPDATES = 0;
-- 활성화
SET SQL_SAFE_UPDATES = 1;
반응형
'MySQL > 오류 및 해결 방법' 카테고리의 다른 글
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported (0) | 2023.11.07 |
---|
댓글