- soft delete, soft deleting
- 소프트 삭제
- hard delete, hard deleting
- 하드 삭제
1 소프트 삭제[ | ]

- DB 데이터를 실제로 삭제하지 않고, 삭제여부를 나타내는 컬럼을 사용하는 방식
- 일반적인 삭제 대신 removed 컬럼을 갱신(SQL UPDATE 문 사용)하는 방식
- 컬럼명은 보통 removed, deleted_at, is_deleted 따위를 사용함
- 컬럼의 자료형은 boolean 또는 datetime[1] 사용
- 예: 삭제되지 않은 데이터는 removed 컬럼값이 NULL, 삭제된 데이터는 removed 값이 삭제된 일시
- 복구하거나 예전 기록을 확인하고자 할 때 간편함
- 다른 테이블과 JOIN시에 항상 removed를 점검해야 하므로 불편함. 속도도 느려짐
2 하드 삭제[ | ]

- 일반적인 '삭제'
- 소프트 삭제의 반대 개념이라는 의미로 '하드'를 붙인 것
- SQL DELETE 문 사용
3 SQL 문 비교[ | ]
- 하드 삭제 (일반적인 삭제)
sql
Copy
DELETE FROM notice WHERE id=123;
- 소프트 삭제
sql
Copy
UPDATE notice SET deleted_at=NOW() WHERE id=123;
4 같이 보기[ | ]
5 참고[ | ]
- ↑ NULL 가능. INSERT시 기본값 NULL 사용
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.