我们知道,事件过期后会自动删除,并且我们无法从 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 查询的输出中看到该事件。
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 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
*************************** 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: 0
character_set_client: cp850
collation_connection: cp850_general_ci
Database Collation: latin1_swedish_ci
2 rows in set (0.00 sec)
复制本文链接文章为作者独立观点不代表优设网立场,未经允许不得转载。
文章推荐更多>
- 1redis是什么软件
- 2sqlserver怎么导入mdf文件
- 3oracle怎么回滚数据
- 4wordpress怎么创建博客
- 5mysql如何找回删除的数据
- 6wordpress怎么改后台密码
- 7navicat为什么连接不上数据库
- 8mysql怎么更改安装路径
- 9俄罗斯搜索引擎入口在哪里 俄罗斯引擎入口进入
- 10oracle数据库监听配置文件客户端怎么用
- 11oracle存储过程日志怎么查看
- 12wordpress如何批量修改文章文字
- 13零日漏洞防御:实时监控CVE与沙箱分析
- 14oracle数据库如何启动
- 15oracle怎么查询存储过程最近编译时间的数据
- 16mysql数据恢复主要采用什么命令执行
- 17oracle数据库怎么卸载干净
- 18wordpress数据库主机填什么
- 19c盘扩容怎么操作 详细图解c盘扩容全过程
- 20phpmyadmin怎么设置中文
- 21oracle数据库触发器怎么重启
- 22如何利用wordpress编辑网站页面
- 23dedecms备份的数据库文件在哪里
- 24如何在IIS7上新建站点并设置安全权限?
- 25oracle delete删除的数据怎么恢复
- 26oracle怎么查看存储过程执行到哪个位置了数据
- 27台式电脑怎么连接蓝牙耳机 蓝牙设备连接教程
- 28redis读写分离怎么实现
- 29redis是做什么的
- 30uc浏览器地址栏在哪里 uc浏览器地址栏位置与使用技巧

ues('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)