반응형
MySQL : 10 분 이상 지난 모든 행 삭제
테이블에 타임 스탬프 필드가 있습니다. 10 분이 지난 레코드를 삭제하려면 어떻게합니까?
이것을 시도 :
DELETE FROM locks WHERE time_created < DATE_SUB( CURRENT_TIME(), INTERVAL 10 MINUTE)
작동하지 않았습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
편집 :이 코드를 사용했습니다.
SELECT time_created, CURRENT_TIMESTAMP, TIMESTAMPDIFF( MINUTE, time_created, CURRENT_TIMESTAMP ) FROM locks
그러나 이상하게도 이것은 잘못된 결과를 제공합니다.
time_created CURRENT_TIMESTAMP TIMESTAMPDIFF (MINUTE, time_created, CURRENT_TIMESTAMP) 2010-08-01 11:22:29 2010-08-08 12:00:48 10118 2010-08-01 11:23:03 2010-08-08 12:00:48 10117
time_created가 유닉스 타임 스탬프 (int)이면 다음과 같이 사용할 수 있습니다.
DELETE FROM locks WHERE time_created < (UNIX_TIMESTAMP() - 600);
(600 초 = 10 분-당연히)
그렇지 않으면 (time_created가 mysql 타임 스탬프 인 경우) 다음을 시도해 볼 수 있습니다.
DELETE FROM locks WHERE time_created < (NOW() - INTERVAL 10 MINUTE)
대답은 MYSQL 매뉴얼 자체에 있습니다.
"DELETE FROM `table_name` WHERE `time_col` < ADDDATE(NOW(), INTERVAL -1 HOUR)"
참조 URL : https://stackoverflow.com/questions/3433465/mysql-delete-all-rows-older-than-10-minutes
반응형
'Development Tip' 카테고리의 다른 글
PHP CodeSniffer는 얼마나 유용합니까? (0) | 2021.01.09 |
---|---|
Google Geocoding API-REQUEST_DENIED (0) | 2021.01.09 |
Hibernate에서 load () 대 get ()의 장점은 무엇입니까? (0) | 2021.01.09 |
Ruby에서 표준 편차를 어떻게 할 수 있습니까? (0) | 2021.01.09 |
jQuery를 사용하여 프로그래밍 방식으로 (0) | 2021.01.09 |