데이터베이스에서 특정 조건에 부합하지 않는 레코드를 삭제하기 위해 DELETE 문을 사용할 수 있습니다. 이 글에서는 테이블에서 특정 시간 단위 동안 변경되지 않은 레코드를 삭제하는 방법을 알아보겠습니다.
1. DELETE
문과 WHERE
절
DELETE
문은 테이블에서 레코드를 삭제하는 데 사용되며, WHERE
절을 함께 사용하여 삭제할 레코드를 지정할 수 있습니다. WHERE
절을 사용하여 특정 조건을 만족하는 레코드만을 삭제할 수 있습니다.
2. 변경 여부를 확인하는 방법
레코드의 변경 여부를 확인하기 위해 테이블에는 보통 변경 시간
컬럼이 포함되어 있습니다. 이 컬럼을 사용하여 특정 시간 단위 동안 변경되지 않은 레코드를 식별할 수 있습니다. 예를 들어, updated_at
컬럼이 레코드의 마지막 업데이트 시간을 저장하는 경우, 이 값을 사용하여 변경 여부를 확인할 수 있습니다.
3. 특정 시간 단위 동안 변경되지 않은 레코드 삭제하기
모든 준비가 끝났으니 이제 특정 시간 단위 동안 변경되지 않은 레코드를 삭제하는 DELETE
문을 작성해보겠습니다. 아래 예시는 updated_at
컬럼을 사용하여 30일 동안 변경되지 않은 레코드를 삭제하는 예시입니다.
DELETE FROM your_table
WHERE updated_at <= NOW() - INTERVAL 30 DAY;
위의 코드에서 your_table
은 대상 테이블의 이름을 나타냅니다. updated_at
은 변경 시간을 저장하는 컬럼의 이름입니다. NOW()
는 현재 시간을 반환하는 함수입니다. INTERVAL 30 DAY
는 30일을 나타내는 표현식입니다.
4. 주의사항
레코드 삭제는 데이터의 손실을 가져올 수 있으므로 주의가 필요합니다. 삭제 작업을 수행하기 전에 백업을 만들거나, 다른 환경에서 테스트를 진행하여 안정성을 확인하는 것이 좋습니다.