イベントは有効期限が切れると自動的に削除されることがわかっており、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 クエリの出力でイベントを確認できます。
えええええ以上がイベント作成時の ON COMPLETION PRESERVE 句の用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。