MySQL Workbench SafeMode 해제 방법


  MySQL 워크벤치에서 DELETE, UPDATE문을 WHERE절 없이 실행하려 할 때 실행이 되지 않은 채 세이프모드를 해제하라는 경고가 나타날 경우 해결하는 방법입니다.



  우선 Edit -> Preferences 메뉴를 차례로 클릭해 환경설정 다이얼로그를 띄워주세요.

  SQLEditor 섹션의 맨 아래, Safe Updates 체크박스의 체크를 해제해주세요.

  Workbench를 재시작해주세요.

  끝입니다. 참 쉽죠? 이제 DELETE, UPDATE문을 제약 조건 없이 실행해도 더이상 거부당하지 않습니다.

주의사항

  위 방법을 실행할 경우, UPDATE, DELETE문에 WHERE절이 빠져도 경고 없이 실행됩니다. 이것이 의미하는 바는, 실수로 WHERE절을 빠뜨린 채 실행해도 되돌릴 방법이 없어진다는 것입니다.

  DELETE문 같은 경우는 그 특성상 실수할 일이 적으나, UPDATE문같은 경우 실수로 마지막에 WHERE절을 빼먹는 경우가 심심찮게 발생할 수 있으므로, Safe Mode를 해제하고 작업할 경우 이 점을 반드시 잊지 말아야 합니다.

  특수한 경우가 아닌 이상 세이프 모드를 켜놓고 제약 조건을 정확히 명시하는 것을 추천드립니다. 여기서 특수한 경우란, 어느 한 테이블의 모든 행을 삭제해야 하는데, 특정할 만한 컬럼이 없는 경우 등 WHERE절을 쓸 수 없는 상황입니다.
  특정할 만한 컬럼이 있는 경우, 예를 들어 auto-increment되는 id 컬럼이 있다면 아래와 같이 써서 모든 레코드를 지울 수 있습니다.

DELETE FROM table_name WHERE id > 0;

  그러므로 정말 특수한 경우가 아니라면, 세이프 모드는 켜두시는 것을 권장합니다.

댓글

이 블로그의 인기 게시물

C# 남아도는 메모리에도 불구하고 OutOfMemoryException이 발생한다면?

MySQL 데이터 타입과 Java 데이터 타입 비교/매칭

테일즈위버 OST 전곡 모음