创建事件时 ON COMPLETION PRESERVE 子句有什么用?

创建事件时 on completion preserve 子句有什么用?

我们知道,事件过期后会自动删除,并且我们无法从 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 查询的输出中不会看到该事件。

AI建筑知识问答 AI建筑知识问答

用人工智能ChatGPT帮你解答所有建筑问题

AI建筑知识问答 22 查看详情 AI建筑知识问答

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 queryG*************************** 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: 0character_set_client: cp850collation_connection: cp850_general_ci  Database Collation: latin1_swedish_ci1 row in set (0.00 sec)

以下查询将使用 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 rows affected (0.00 sec)mysql> Select * from event_messages;+----+------------------+---------------------+| ID | MESSAGE          | Generated_at        |+----+------------------+---------------------+| 1  | Without Preserve | 2017-11-22 20:32:13 || 2  | With Preserve    | 2017-11-22 20:35:12 |+----+------------------+---------------------+2 rows in set (0.00 sec)mysql> SHOW EVENTS FROM queryG*************************** 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: 0character_set_client: cp850collation_connection: cp850_general_ci  Database Collation: latin1_swedish_ci*************************** 2. row ***************************                  Db: query                Name: testing_event_with_Preserves             Definer: root@localhost           Time zone: SYSTEM                Type: ONE TIME          Execute at: 2017-11-22 20:35:12      Interval value: NULL      Interval field: NULL              Starts: NULL                Ends: NULL              Status: DISABLED          Originator: 0character_set_client: cp850collation_connection: cp850_general_ci  Database Collation: latin1_swedish_ci2 rows in set (0.00 sec)

以上就是创建事件时 ON COMPLETION PRESERVE 子句有什么用?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/226815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Sublime如何处理跨浏览器兼容性问题_支持旧版本IE与现代浏览器对比
上一篇 2025年11月3日 19:26:15
小米 17 系列销量已超百万,比往代速度更快
下一篇 2025年11月3日 19:27:00

相关推荐

发表回复

登录后才能评论
关注微信