ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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를 비활성화하려면 다음 단계를 따르세요:

    1. MySQL Workbench를 열고 상단 메뉴에서 Edit를 선택합니다.
    2. Preferences를 선택합니다.
    3. 왼쪽 메뉴에서 SQL Editor를 선택합니다.
    4. Safe Updates (requiring WHERE clause or LIMIT to UPDATE or DELETE)를 체크 해제합니다.
    5. Apply 버튼을 클릭합니다.
    6. 데이터베이스에 다시 연결합니다.

    이제 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 테이블명
    • 테이블 참조키부터 삭제
Designed by Tistory.