Kami tahu bahawa acara dipadamkan secara automatik selepas ia tamat tempoh, dan kami tidak dapat melihatnya daripada pernyataan SHOW EVENTS. Untuk mengubah tingkah laku ini, kita boleh menggunakan ON COMPLETION PRESERVE apabila mencipta acara. Ia boleh difahami melalui contoh berikut -
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)
Pertanyaan berikut akan mencipta acara tanpa menggunakan ON COMPLETION PRESERVE, jadi anda tidak akan melihat acara dalam output pertanyaan 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)
Pertanyaan berikut akan mencipta acara menggunakan ON COMPLETION PRESERVE supaya anda boleh melihat acara dalam output pertanyaan SHOW EVENTS FROM db_name.
rreeeeAtas ialah kandungan terperinci Apakah kegunaan klausa ON COMPLETION PRESERVE semasa mencipta acara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!