본문 바로가기
MySql

MySQL 개수가 20보다 큰 경우 테이블에서 삭제하는 방법

by 베이스 공부 2020. 11. 23.
반응형

추가 레코드를 추가하기 전에 20 개의 최신 레코드 만 포함하면되는 mysql 테이블이 있습니다. 새 행이 매일 추가되므로 먼저 허용 된 20 개보다 큰 레코드를 가장 먼저 삭제하고 싶습니다.

테이블에는 자동 증분 "id"열이 포함되어 있으므로 가장 오래된 레코드를 쉽게 확인할 수 있습니다.

도움을 주셔서 감사합니다.

 

해결 방법

 

쿼리에서 LIMIT 키워드로 오프셋을 지정하여 최신 20 개 행이 유지되도록 할 수 있습니다. 그러나 MySQL의 문서에 따르면 오프셋에서 마지막까지 쉽게 제한 할 수있는 방법은 없습니다. 대신 다음과 같이 제안합니다.

결과 집합의 끝까지 특정 오프셋에서 모든 행을 검색하려면 두 번째 매개 변수에 큰 수를 사용할 수 있습니다.

따라서이 SQL은 트릭을 수행해야합니다.

DELETE FROM table ORDER BY id DESC LIMIT 20, 18446744073709551615;

 

참조 페이지 https://stackoverflow.com/questions/2910137

 

 

반응형

댓글