이벤트는 만료된 후 자동으로 삭제된다는 것을 알고 있으며 SHOW EVENTS 문에서는 이를 볼 수 없습니다. 이 동작을 변경하려면 이벤트를 생성할 때 ON COMPLETION PRESERVE를 사용할 수 있습니다. 다음 예를 통해 이해할 수 있습니다.
mysql> Create table event_messages(ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, MESSAGE VARCHAR(255) NOT NULL, Generated_at DATETIME NOT NULL); Query OK, 0 rows affected (0.61 sec)
다음 쿼리는 ON COMPLETION PRESERVE를 사용하지 않고 이벤트를 생성하므로 해당 이벤트는SHOW EVENTS FROM db_name쿼리의 출력에 표시되지 않습니다.
mysql> CREATE EVENT testing_event_without_Preserves ON SCHEDULE AT CURRENT_TIMESTAMP DO INSERT INTO event_messages(message,generated_at) Values('Without Preserve',NOW()); Query OK, 0 rows affected (0.00 sec) mysql> Select * from event_messages; +----+------------------+---------------------+ | ID | MESSAGE | Generated_at | +----+------------------+---------------------+ | 1 | Without Preserve | 2017-11-22 20:32:13 | +----+------------------+---------------------+ 1 row in set (0.00 sec) mysql> SHOW EVENTS FROM query\G *************************** 1. row *************************** Db: query Name: testing_event5 Definer: root@localhost Time zone: SYSTEM Type: ONE TIME Execute at: 2017-11-22 17:09:11 Interval value: NULL Interval field: NULL Starts: NULL Ends: NULL Status: DISABLED Originator: 0 character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: latin1_swedish_ci 1 row in set (0.00 sec)
다음 쿼리는 ON COMPLETION PRESERVE를 사용하여 이벤트를 생성하므로SHOW EVENTS FROM db_name쿼리의 출력에서 이벤트를 볼 수 있습니다.
rreee위 내용은 이벤트를 생성할 때 ON COMPLETION PRESERVE 절을 사용하는 것은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!