반응형
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;
참고
반응형
'Error' 카테고리의 다른 글
[Error] unreported exception IOException; must be caught or declared to be thrown (0) | 2022.08.14 |
---|---|
[Intelli J] The server time zone value 'KST' is unrecognized 에러 해결(MySQL) (0) | 2022.07.31 |
[Vue.js] Axios 통한 RestFul API 통신시 415 에러 해결법 (0) | 2022.06.25 |
[Tomcat] 65535 bytes limit(대용량 jsp 파일) 에러 해결법 (0) | 2022.01.09 |
[Java] NumberFormatException 에러 해결법 (0) | 2022.01.09 |