2017-12-08 2 views
0

데이터베이스는 행 자체를 조건으로 제거 할 수 있습니까?데이터베이스가 행 자체를 제거 할 수 있습니까?

보통 사용자 작업에 의해 데이터베이스에서 데이터를 제거했지만 지금은 데이터베이스 자체로 데이터베이스를 원합니다. 사용자없이 타임 스탬프가있는 행을 삭제할 수 있어야합니다. 행에 NOW()보다 오래된 시간 소인이있을 때마다 자체가 삭제됩니다.

누구든지 내 프로젝트에 데이터베이스 또는 도구를 추천 할 수 있습니까?

이 프로젝트에서 사용할 도구는 PHP, Javascript, HTML 및 CSS 인 입니다.

저는 MySQL에 익숙하지만 웹에서 대답하는 정보가 없습니다. 대답하는 질문은 입니다. 적어도 내 원인은 아니야.


은 현재 내가이

사용자가 1

입니다 active합니다 alse startdateenddate (모두 MM/DD/YYYY 형식으로되어 있습니다)와 테이블 MySQL은 "작업"을 "작업"을 추가 설정 한

매일 (자정에) "작업"테이블의 각 행이 enddate보다 오래된 오늘을 확인하고 업데이트가 active 인 경우 0으로두고 그렇지 않으면 그대로 두는 이벤트를 만들어야합니다.

+1

는 당신이 확인 했을 (https://stackoverflow.com/questions/ 9472167/what-of-the-the-the-way-to-delete-old-rows-from-a-rolling-basis) – Sorix

+1

물론, [mysql 테이블에서 자동으로 데이터 행을 삭제하는 방법 24 시간 후 데이터를 테이블에 저장 하시겠습니까?] (https://stackoverflow.com/questions/44253746/how-do-i-delete-rows-of-data-from-mysql-table-automatically-with-24-hours-after 예를 들어 게시물. – Alexander

답변

1

당신은이 조건을 사용하여 시도 할 수 있습니다 : [? 롤링으로 MySQL의에서 기존 행을 삭제하는 가장 좋은 방법은 무엇]

WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY) 
So that the whole SQL script looks like this: 

CREATE EVENT delete_event 
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY 
ON COMPLETION PRESERVE 

DO BEGIN 
     DELETE messages WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY); 
END; 
+0

이 기능이 루프 기능을 수행합니까, 아니면 7 일 후에 수동으로 다시 실행해야합니까? –

+0

MySQL은 event schedule thread라는 특별한 스레드를 사용하여 모든 예약 된 이벤트를 실행합니다. 그것은 일정 시간에 수행합니다. – vijayvicks

+0

phpmyadmin을 통해이 기능을 설정할 수 있습니까? –

관련 문제