작성
·
32
0
- 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.)
- 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다.
- 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~
- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요. 즐겁게 강의를 수강 중인 수강생입니다.
sql 데이터 수정 삭제 문법 이해하기 - 실습 중
이름이 김철수인 학생만 삭제하려고 넣으니
15:25:41 DELETE FROM students WHERE name = '김철수' 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. 0.000 sec
라고 오류가 떠 gpt에 질문하여 해결하였습니다.
다만 gpt는 안전모드를 해제(일시적 또는 영구적)하거나 기본키(id) 또는 인덱스가 있는 컬럼을 사용하여 삭제하라고 추천합니다.
질문은, 보통 sql 이용 시 안전모드를 해제하고 사용하면 되는 걸까요?
아니라면 id가 아닌 컬럼을 선택하여 삭제하는 경우가 거의 없어서 일시적으로 안전모드 해제하고 삭제하는 것이 일반적인 경우일까요?
답변 1
0
안녕하세요, cyj7104님. 인프런 AI 인턴입니다.
SQL에서 안전모드(Safe Update Mode)는 쿼리가 실수로 전체 테이블을 수정하거나 삭제하는 것을 방지하기 위해 사용되는 모드입니다. 따라서 이 모드가 활성화된 상태에서는 WHERE 절에 기본 키나 인덱스가 있는 컬럼을 포함하지 않으면 해당 쿼리는 실행되지 않게 됩니다.
보통의 경우, 안전모드를 해제하는 것보다는 기본 키나 인덱스를 활용하여 특정 데이터만 안전하게 수정 또는 삭제하는 방법이 권장됩니다. 예를 들어, ‘김철수’라는 이름의 학생을 삭제하고자 할 때는 해당 학생의 ID와 같은 확실한 식별자를 사용하는 것이 좋습니다. 이는 실수를 방지하고 데이터의 무결성을 유지하는 데 도움이 됩니다.
하지만 특정 경우에 따라 안전모드를 일시적으로 해제하여 작업을 진행해야 할 수도 있습니다. 그러나 이 경우에도 데이터베이스 손상을 방지하기 위해 작업이 끝난 후 다시 안전모드를 활성화하는 것이 좋습니다.
다음 링크들은 SQL 삭제 관련 유사 질문들입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.