Error
[MySQL] Safe mode 해제 하는 방법(Error Code: 1175)
Wonol
2022. 7. 24. 13:17
반응형
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 Editor and reconnect.
기본적으로 MySQL에서 테이블에 대해 Safe Mode로 하여 데이터를 함부로 변경하지 못하도록 막아둔 것이었다. 이 safe mode 를 풀어야 데이터를 변경할 수 있어 해제하는 방법을 정리하고자 한다.
1. Safe Mode
- MySQL에서 Update 또는 Delete 할 때 where 절이 없거나, where 절에 key column 외의 비교문일 때 실행되지 않도록 막아두는 mode 입니다.
- 또한, 여러 row 를 동시에 Update / Delete 할 때도 동일합니다.
2. Safe Mode 해제
- Safe Mode 해제하는 방법은 2가지가 있습니다.
- MySQL Workbench 로 적용(설치 필요)
- 쿼리상으로 적용
2-1. MySQL Workbench
- Window : [Edit] -> [Preferences] / Mac : [MySQLWorkbench] -> [Preferences]
- [SQL Editor] -> [Other] -> Safe Updates (rejects UPDATEs and DELETEs with no restrictions) 체크 해제
- MySQL Workbench 재시작을 해야 적용이됩니다.
2-2. 쿼리(Query)
- 특정 시기에만 적용시키고 싶을 때는 해당 쿼리를 통해서 on / off 하여 사용하실 수 있습니다.
- 실행하고자 하는 update / delete 문 이전에 실행이 필요합니다.
-- DISABLE SAFE MODE(safe mode 비활성화)
SET SQL_SAFE_UPDATES = 0;
-- 실행하고자 하는 쿼리 실행
INSERT INTO MEMBER ...
UPDATE MEMBER SET ...
...
-- ENABLE SAFE MODE(safe mode 활성화)
SET SQL_SAFE_UPDATES = 1;
참고
반응형