2013-08-12 2 views
9

날짜가 만료되면 어떻게 자동으로 기록을 삭제할 수 있는지 알고 싶습니다. 항공권 예약 웹 사이트를 만들고 있습니다. 내 mysql 데이터베이스에서 모든 만료 된 항공편 세부 정보를 삭제해야합니다. 나는 어딘가에 내가 cron을 사용할 수 있다고 읽었지 만 어떻게해야할지 모른다. 스크립트에 대한 도움말은 매우 유용합니다.날짜가 만료되면 테이블에서 레코드를 자동으로 삭제 하시겠습니까?

+0

왜 삭제해야하나요? 만료 된 경우에만 표시하지 않음 –

+0

필요 없음. dbms schedule을 사용하십시오. 예를 들어, MySQL에는 자체 [scheduler] (http://dev.mysql.com/doc/refman/5.1/en/events-overview.html)가 있습니다. – BlitZ

+0

자동 만료 스크립트를 실행하려면 crone 작업을 사용하십시오. – irfanmcsd

답변

10

당신은 그것을 위해 MySQL을 Events를 사용하려고 할 수 있습니다 : MySQL의 Event Scheduler이 서버에서 활성화 될 필요가 것을

CREATE EVENT IF NOT EXISTS `dbName`.`eventName` 
ON SCHEDULE 
    EVERY 1 DAY // or 1 HOUR 
COMMENT 'Description' 
DO 
    BEGIN 

    DELETE FROM `dbName`.`TableName` WHERE `DateCol` < NOW(); 

    END 

참고 :

SET GLOBAL event_scheduler = ON; 

더 많은 정보 here.

+0

> = 값에 TODAY 값이 표시되지 않는 이유를 알고 있습니까? 마치 내가 입력하는 것처럼 = – cmario

+0

@ cmario 그것은 실제로 비교하는 것에 달려 있습니다. – BlitZ

+0

나는 그것을 할 방법을 발견했다. SELECT * FROM'table' WHERE'date'> = date (NOW()). 답장을 보내 주셔서 감사합니다 – cmario

0

만료 된 레코드를 확인하고 주기적으로 삭제하려면 서비스가 필요합니다. 당신이 SQL 사용해야합니다 RecordDate < @Expiration

1

삭제 기록이 좋은 생각이 아니다 WHERE

이 YourTable 삭제를, 나는 만료 된 레코드를 표시하지 않는 당신이 당신의 세부 정보 표에 ActiveFrom 및 ActiveTo 날짜 시간 열 추가를 제안합니다 프런트 엔드에서.

0

귀하의 상황에 가장 적합한 것은 Cron입니다.

  • 원치 않는 비행을 삭제하거나 신고하는 PHP 파일을 만들면 스크립트는 데이터베이스에 연결하고 쿼리를 실행하며 짧은 성공/실패 메시지를 출력합니다.
  • X 시간마다 또는 원하는 PHP 스크립트를 실행하는 cron 작업을 설정하십시오.

당신의 cPanel를 사용하는 경우, 당신은 설치 CRON 채용의 당신의 cron job from it

0

만들기 사용을 할 수 있습니다. 아래 표현을 살펴보십시오.

Minutes [0-59] 
| Hours [0-23] 
| | Days [1-31] 
| | | Months [1-12] 
| | | | Days of the Week [Numeric, 0-6] 
| | | | | 
* * * * * home/path/to/command/the_command.sh 

매주 토요일 오전 8시 30 분에 작업을 실행하도록 예약하려면 대부분 다음과 같아야합니다.

30 8 * * 6 home/path/to/command/the_command.sh 

설정을 가지고 놀면 결국 사용하게됩니다.

+0

어때요? – Faytraneozter

관련 문제