반응형
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
반응형
'DB,서버,OS 등' 카테고리의 다른 글
[DB] Transaction ACID 란? (0) | 2022.02.15 |
---|---|
[linux] Bash Script 로 hosts 등록하기 (0) | 2021.09.06 |
[Markdown] md 아이콘 사용하기 #markdown icon (0) | 2021.01.09 |
[Apache] port 추가하기. httpd vHosts (0) | 2020.12.23 |
Windows MySQL 5 .x 설치 (0) | 2020.12.12 |
댓글