📝 한줄 요약
Supabase에서 데이터를 수정하는 SQL 명령어를 실행했는데, 이런 경고가 떴어요:
WARNING: UPDATE without WHERE clause will update ALL ROWS!“WHERE 절이 없으면 모든 행이 바뀐다”는 뜻이었어요. 이 경고를 통해 배웠어요: 데이터베이스는 실수를 막기 위해 설계되어 있다는 것.
Before: “WHERE”가 뭐고 왜 필요한지 몰랐음
After: 데이터를 다루는 기본 규칙 이해함
👥 이런 분께 추천
SQL을 처음 배우는 분
데이터베이스에서 실수가 두려운 분
“하나만 수정하려고 했는데 전체가 바뀐” 경험이 있는 분
엑셀에서 데이터를 다루다가 SQL로 넘어오는 분
🙋 내 스펙 & 환경
항목
내용
직업
초과근무관리 앱 제작
도구
Supabase SQL 에디터
상황
한 명의 초과근무 기록을 “승인됨”으로 수정하려고 함
실수
WHERE 절을 빼먹음
진행 방법
1. 왜 WHERE 절이 필요한가
상황을 예로 들겠습니다. 초과근무 데이터베이스가 있어요:
ID
이름
시간
상태
1
김철수
2
대기중
2
이영희
3
대기중
3
박민준
1.5
대기중
“ID 1번 (김철수)의 상태를 ‘승인됨’으로 바꾸고 싶다”고 해봅시다.
틀린 방법 (WHERE 절 없음):
UPDATE overtimes
SET status = 'approved';이 명령어를 실행하면? 모든 사람의 상태가 ‘승인됨’으로 바뀝니다!
ID
이름
시간
상태
1
김철수
2
승인됨
2
이영희
3
승인됨
3
박민준
1.5
승인됨
이영희와 박민준은 아직 대기 중인데 모두 승인된 것처럼 되었어요. 큰 문제입니다.
바른 방법 (WHERE 절 포함):
UPDATE overtimes
SET status = 'approved'
WHERE id = 1;이 명령어는 “ID 1번인 행에서만 status를 바꿔”라는 뜻이에요.
ID
이름
시간
상태
1
김철수
2
승인됨
2
이영희
3
대기중
3
박민준
1.5
대기중
정확하게 1번만 바뀌었어요.
2. WHERE 절이란 뭔가
WHERE 절은 데이터베이스에 주는 “조건”이에요.