간혹 mysql 워크벤치에서 update 나 delete를 하려고 할 때 아래와 같은 에러 메시지와 실행이 되지 않는 경우가 있다.
Error Code: 1175. 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 -> SQL Queries and reconnect.
테이블에서 키값을 이용한 update 나 delete를 허용하는데 넓은 범위의 데이터를 수정하려고 할 때 발생하며,
워크벤치에서 사용자의 실수를 줄이고자 안전모드를 걸어두지 않았나 싶다.
해결 방법으로는 해당 옵션을 꺼주는 것으로 방법은 두가지가 있다.
1. 워크벤치의 UI창을 이용한 옵션 설정(해당 옵션 변경시 영구적으로 설정이 반영된다.)
MySQL Workbench -> Edit -> Prederences... -> SQL Editor 탭에 있는
Safe Updates (rejects UPDATEs and DELETEs with on restrictions) 항목 체크 해제 후 저장
2. 쿼리를 사용하여 옵션을 변경하는 방법(해당 방법은 정확히 어느 시점인지는 모르겠으나 한번씩 옵션이 풀리는 듯하다.)
SET SQL_SAFE_UPDATES = 0;
어느방법을 사용하던 사용자의 자유지만 나는 귀찮더라도 쿼리를 이용해 필요할 때만 모드를 해제해 사용하는 편이다.
또한 내가 사용하는 mac버전 워크벤치에는 첫번째 방법의 경로를 찾을 수가 없었다.
반대로 safe mode를 재설정하고싶다면
첫 번째 방법 항목의 체크를 설정해주거나
두 번째 방법 쿼리의 0을 1로 바꿔주면 된다.
ex) SET SQL_SAFE_UPDATES = 1;
'개발 이야기 > 기타' 카테고리의 다른 글
[linux] 데몬(Daemon)이란 (0) | 2019.04.07 |
---|---|
[mysql]트랜잭션 (0) | 2019.01.31 |
[mysql] 계정 관리 및 권한 설정 (0) | 2017.11.03 |
Mac에서 Redis 설치 (0) | 2017.10.17 |
리눅스에서 파일 찾기 명령어 find (0) | 2017.09.14 |