계발하는 개발자

[MySQL 에러] You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences 에러 해결법 본문

❗️Error

[MySQL 에러] You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences 에러 해결법

dev_genie 2023. 9. 29. 23:26

에러

mysql workbench에서 데이터를 업데이트 하려고 했을 때 다음과 같은 에러가 뜨며 명령이 실행되지 않았다.

 

원인

문법은 맞는거 같은데 뭐가 잘못된거지?? 하고 찾아보다가,

MySQL은 기본적으로 Safe Update 모드가 활성화되어있어서 사용자의 급작스러운 데이터 변경을 방지한다는 걸 알게 됐다.

Safe Update 모드란?
사용자가 실수로 데이터를 삭제하거나 변경하는 것을 방지하기 위한 MySQL의 보안 기능

 

해결

Safe Update 모드때문에 막혀있어서 update가 안되는거니까 Safe모드를 해제해주면 되는데,

해결 방법은 총 2가지가 있다.

 

방법1 (일시적인 Safe모드 해제)

아래와 같은 sql로 환경변수를 변경한다.

SET SQL_SAFE_UPDATES=0;

위 SQL 명령으로 safe 모드를 임시 해제하고 나니까

데이터 변경이 잘 된다.

 

방법2 (영구적인 safe모드 해제)

[Edit] > [Preferences] > [SQL Editor]에서 안전모드(Safe mode)를 해제한다.

상단 [Edit]탭 > Preferences 선택

 

그럼 위와 같은 창이 열리는데 [SQL Editor]탭 선택후,

조금만 스크롤 내리면 Safe Updates 옵션 체크란이 있다.

 

체크를 해제해준다.

 

그런 후에 이번엔  set sql_safe_updates=0; 이런 SQL없이

테이블 데이터 조회후 'idx'열이 9인 행의 'name' 열 값을 변경해줬다.

보시다시피 에러없이 데이터 변경이 잘 이뤄진다.

LIST
profile

dev_genie

@dev_genie

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!