-
[MySQL Workbench]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 2024. 5. 31. 13:24
workbench 에서 다음과 같이 오류가 난다면, 그 이유는 데이터베이스에서 실수로 전체 테이블을 업데이트하거나 삭제하는 것을 방지하기 위해 설계되었습니다. 이 모드가 활성화되어 있으면 WHERE 절에 KEY 컬럼을 사용하지 않고 테이블을 업데이트하거나 삭제할 수 없습니다.
1. Safe Update Mode 비활성화
Safe Update Mode를 비활성화하려면 다음 단계를 따르세요:
- MySQL Workbench를 열고 상단 메뉴에서 Edit를 선택합니다.
- Preferences를 선택합니다.
- 왼쪽 메뉴에서 SQL Editor를 선택합니다.
- Safe Updates (requiring WHERE clause or LIMIT to UPDATE or DELETE)를 체크 해제합니다.
- Apply 버튼을 클릭합니다.
- 데이터베이스에 다시 연결합니다.
이제 Safe Update Mode가 비활성화되어 WHERE 절에 KEY 컬럼을 사용하지 않아도 DELETE 또는 UPDATE 문을 실행할 수 있습니다.
2. 세션 동안만 Safe Update Mode 비활성화
또 다른 방법은 현재 세션 동안만 Safe Update Mode를 비활성화하는 것입니다. 이를 위해 다음 SQL 명령을 실행합니다:
SET SQL_SAFE_UPDATES = 0;
이 명령을 실행한 후 DELETE 문을 다시 시도해 보세요. 작업이 완료되면 원래 상태로 되돌리기 위해 다음 명령을 실행할 수 있습니다:
SET SQL_SAFE_UPDATES = 1;
+ 오늘도 즐거운 오류 해결 시간 ~,~
+ 추가로 만약에 삭제까지 잘 되었는 데 해당 테이블에서 id 값이 AI 설정이 되어 있어서 INSERT 하고 SELECT으로 조회 했는 데 아래 사진처럼 id 가 7 부터 시작한다면 어떻게 해야될까?
그럴 땐 DELETE 말고 다른 방법인 TRUCNATE을 사용해보자.
TRUNCATE 테이블명;
다시 조회 했을 때, id 값이 1로 잘 들어간 걸 볼 수 있다.
++ 추가로
- MySQL 데이터 삭제하는 방법 3가지
- DELETE:
- 조건이 없으면 모든 행이 삭제
- 조건이 있으면 조건에 맞는 행만 삭제
- 모든 행이 삭제되어도 테이블은 남아 있음.
- DELETE FROM 테이블명 (WHERE 조건);
- DROP:
- 테이블을 통째로 삭제하기. (테이블도 없음)
- DROP TABLE 테이블명;
- TRUNCATE:
- 모든 행이 삭제 (테이블 남아 있음.)
- TRUNCATE 테이블명
- DELETE:
- 테이블 참조키부터 삭제
'언어 > mysql' 카테고리의 다른 글
[MySQL_Workbench]Error Code: 1701. Cannot truncate a table referenced in a foreign key constraint (0) 2024.05.31 mysql error 1452 (42000) (0) 2024.05.08