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

이벤트를 생성하는 동안 ON COMPLETION PRESERVE 절을 사용하는 것은 무엇입니까?


이벤트가 만료되면 자동으로 삭제되고 SHOW EVENTS 문에서 이벤트를 볼 수 없다는 것을 알고 있습니다. 이러한 종류의 동작을 변경하려면 이벤트를 생성하는 동안 ON COMPLETION PRESERVE를 사용할 수 있습니다. 다음 예에서 이해할 수 있습니다 -

예시

mysql> 테이블 생성 event_messages(ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, MESSAGE VARCHAR(255) NOT NULL, Generated_at DATETIME NOT NULL);쿼리 OK, 영향을 받는 행 0개(0.61초)

아래 쿼리는 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개(0.00초)mysql> Select * from event +----+------------------+---------------------+| 아이디 | 메시지 | 생성된_at |+----+------------------+---------------------+| 1 | 보존하지 않고 | 2017-11-22 20:32:13 |+----+------+-------------- -------+1 행 세트(0.00초) mysql> 쿼리에서 이벤트 표시\G**************************** * 1. 행 *************************** Db:쿼리 이름:testing_event5 정의자:root@localhost 시간대:SYSTEM 유형:ONE TIME 실행 시간:2017-11-22 17:09:11 간격 값:NULL 간격 필드:NULL 시작:NULL 종료:NULL 상태:DISABLED 발신자:0character_set_client:cp850collation_connection:cp850_general_ci 데이터베이스 데이터 정렬 집합:latin1_0swedish_ 사전> 

아래 쿼리는 ON COMPLETION PRESERVE를 사용하여 이벤트를 생성하므로 SHOW EVENTS FROM db_name 출력에 표시됩니다. 쿼리.

mysql> CREATE EVENT testing_event_with_Preserves ON SCHEDULE AT CURRENT_TIMESTAMP ON COMPLETION PRESERVE DO INSERT INTO event_messages(message,generated_at) Values('With Preserve',NOW());Query OK, 0개의 행 선택 * 영향(0.00초) mysql from event_messages;+-+------------------+--------------------+ | 아이디 | 메시지 | 생성된_at |+----+------------------+---------------------+| 1 | 보존하지 않고 | 2017-11-22 20:32:13 || 2 | 보존 | 2017-11-22 20:35:12 |+----+------+----------------- -------+2 행 세트(0.00초)mysql> 쿼리에서 이벤트 표시\G**************************** * 1. 행 *************************** Db:쿼리 이름:testing_event5 정의자:root@localhost 시간대:SYSTEM 유형:ONE TIME 실행 시간:2017-11-22 17:09:11 간격 값:NULL 간격 필드:NULL 시작:NULL 종료:NULL 상태:DISABLED 발신자:0character_set_client:cp850collation_connection:cp850_general_ci 데이터베이스 데이터 정렬:latin1_****swedish_ci ****************** 2. 행 *************************** DB:쿼리 이름:testing_event_with_Preserves 정의자:root@localhost 시간대:SYSTEM 유형:ONE TIME 실행 시간:2017-11-22 20:35:12 간격 값:NULL 간격 필드:NULL 시작:NULL 종료:NULL 상태:DISABLED 발신자:0character_set_client:cp850collation_connection:cp850_general_ci 데이터베이스 데이터 정렬:집합의 latin1_swedish_ci2 행(0.00초)