Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

TTL(Time to live) 옵션에 따라 MySQL 데이터베이스에 레코드를 생성하는 방법은 무엇입니까?

<시간/>

MySQL 이벤트 스케줄러를 사용해야 합니다. 일정뿐만 아니라 이벤트의 실행을 관리합니다.

먼저 테이블을 생성해야 합니다. 그런 다음 매일 일정을 잡을 이벤트를 만들 수 있습니다.

테이블을 만들어 봅시다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> 테이블 생성 EventDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> EventDateTime datetime -> );쿼리 OK, 영향을 받는 행 0개(0.71초)

이제 insert 명령을 사용하여 테이블에 일부 레코드를 삽입할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> EventDemo(EventDateTime) 값에 삽입('2010-09-21'), 쿼리 확인, 1행 영향(0.19초) mysql> EventDemo(EventDateTime) 값에 삽입('2016-10-27');Query OK, 1행 영향(0.20초)mysql> EventDemo(EventDateTime) 값에 삽입('2018-12-09');Query OK, 1행 영향(0.10초)mysql> EventDemo(EventDateTime) 값에 삽입( '2019-03-12');쿼리 OK, 1행 영향(0.17초)mysql> EventDemo(EventDateTime) 값에 삽입('2019-01-04');쿼리 OK, 1행 영향(0.15초) 

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> 선택 *EventDemo에서

다음은 출력입니다 -

+----+---------------------+| 아이디 | 이벤트 날짜 시간 |+----+---------------------+| 1 | 2010-09-21 00:00:00 || 2 | 2016-10-27 00:00:00 || 3 | 2018-12-09 00:00:00 || 4 | 2019-03-12 00:00:00 || 5 | 2019-01-04 00:00:00 |+----+------------------+5행 세트(0.00초)

다음은 TTL(Time To Live)의 적용을 받는 쿼리입니다. −

mysql> 구분자 //mysql> CREATE EVENT -> DeleteDemo -> ON SCHEDULE EVERY DAY -> DO -> BEGIN -> DELETE FROM -> EventDemo -> WHERE EventDateTime  END //쿼리 OK, 영향을 받는 행 0개(0.31초)