MySQL 如何在数据库中创建一个基于TTL(生存时间)选项的记录
您需要使用MySQL事件计划程序。它管理事件的执行以及调度。
首先,您需要创建一个表。之后,您可以创建一个每天计划的事件。
让我们创建一个表。创建表的查询如下所示−
mysql> create table EventDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EventDateTime datetime
-> );
Query OK, 0 rows affected (0.71 sec)
现在,您可以使用插入命令在表中插入一些记录。查询如下所示−
mysql> insert into EventDemo(EventDateTime) values('2010-09-21');
Query OK, 1 row affected (0.19 sec)
mysql> insert into EventDemo(EventDateTime) values('2016-10-27');
Query OK, 1 row affected (0.20 sec)
mysql> insert into EventDemo(EventDateTime) values('2018-12-09');
Query OK, 1 row affected (0.10 sec)
mysql> insert into EventDemo(EventDateTime) values('2019-03-12');
Query OK, 1 row affected (0.17 sec)
mysql> insert into EventDemo(EventDateTime) values('2019-01-04');
Query OK, 1 row affected (0.15 sec)
使用select语句显示表中的所有记录。查询如下所示−
mysql> select *from EventDemo
下面是输出−
+----+---------------------+
| Id | EventDateTime |
+----+---------------------+
| 1 | 2010-09-21 00:00:00 |
| 2 | 2016-10-27 00:00:00 |
| 3 | 2018-12-09 00:00:00 |
| 4 | 2019-03-12 00:00:00 |
| 5 | 2019-01-04 00:00:00 |
+----+---------------------+
5 rows in set (0.00 sec)
以下是基于TTL(生存时间)的查询−
mysql> delimiter //
mysql> CREATE EVENT
-> DeleteDemo
-> ON SCHEDULE EVERY 1 DAY
-> DO
-> BEGIN
-> DELETE FROM
-> EventDemo
-> WHERE EventDateTime < NOW();
-> END //
Query OK, 0 rows affected (0.31 sec)
阅读更多:MySQL 教程
极客教程