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;

참고

- https://hello-bryan.tistory.com/278

반응형