본문 바로가기
DB,서버,OS 등

[MySQL] Safe mode 해제 하는 방법

by bryan.oh 2021. 1. 9.
반응형

MySQL Safe mode

 

Safe mode

update 또는 delete 할 때 where 절이 없거나 where 절에 key column 외의 비교문일 때,

쉽게말해 한번에 여러 row 를 업데이트할 때, 막아두는게 Safe mode On 입니다.

예를들어 아래와 같은 쿼리겠죠. tb_user 라는 테이블의 key 는 userId 라고 했을 때

update tb_user set userName = '';
delete from tb_user where age > 10;

오류 메시지는 아래와 같습니다.

16:58:03 delete FROM testdb.tb_user 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 Editor and reconnect. 0.000 sec

 

Safe mode 해제(disable)

1. MySQL Workbench 에서

Edit > Preferences...

Safe Updates (rejects UPDATEs and DELETEs with no restrictions) 체크 해제

그리고 나서 WorksBench 재시작 해야합니다.

 

2. Query 에서

Safe mode 를 항상 사용하다가 특정 경우에만 Safe mode 를 off 하고 싶을 경우, 

쿼리를 실행하기 전에 mode 를 바꿀 수 있습니다.

set SQL_SAFE_UPDATES = 0;  # disable safe mode

UPDATE tb_user SET userName = '' WHERE delFlag = 'Y';

set SQL_SAFE_UPDATES = 1;  # enable safe mode

update 쿼리를 날리기 전에 safe mode 를 끄고, 쿼리 실행 후 safe mode 를 다시 켭니다.

 

 

728x90
반응형

댓글