数据库层面--实现数据的状态随时间同步

ops/2024/9/23 4:07:10/

数据库中一些有关于时间的数据,需要动态调整,但从代码角度未免比较麻烦,不如直接从数据层面进行设置:推荐使用 事件

1、开篇碎碎念:

今天在写项目时,偶然发现部分数据需要依据时间实现状态同步。比如活动当前的状态,

2、解决思路:

(1)触发器:不推荐

CREATE TRIGGER update_activity_status -- 触发器名称
BEFORE UPDATE ON activity_info  -- 所在表格
FOR EACH ROW
BEGINIF NEW.act_statue <> 4 THEN -- 只有当 act_status 不为 4 时才进行后续判断-- act_statue 为我数据库中的属性IF NEW.act_start_time > CURRENT_TIMESTAMP THEN SET NEW.act_statue = 1; -- 未开始ELSEIF NEW.act_end_time < CURRENT_TIMESTAMP THENSET NEW.act_statue = 3; -- 已结束ELSESET NEW.act_statue = 2; -- 进行中END IF;END IF;
END;

但,这个只能在更新的时候才能生效,我希望是按一定时间来自动更新

(2)事件:推荐。

CREATE EVENT update_activity_status_daily  
ON SCHEDULE EVERY 1 DAY  -- 设置发生的间隔周期
STARTS CURRENT_TIMESTAMP -- 当前时间
DO
BEGINUPDATE activity_infoSET act_statue = CASEWHEN act_statue IN (1, 2, 3) THENCASEWHEN act_start_time > CURRENT_TIMESTAMP THEN 1 -- 未开始WHEN act_end_time < CURRENT_TIMESTAMP THEN 3 -- 已结束ELSE 2 -- 进行中ENDELSE act_statue -- 保持不变END;
END;

默认一天后,自动变化,设置后立即生效,如下图:
 

事件在navicate中的位置:

双击可对该事件进行触发时间等的调整。


http://www.ppmy.cn/ops/45770.html

相关文章

设计模式16——策略模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 策略模式&#xff08;Strategy…

大模型之路,从菜鸟到模型大师只需要一步

前言&#xff1a; 在这个数据爆炸的时代&#xff0c;大模型技术正以前所未有的速度发展。从自然语言处理到计算机视觉&#xff0c;从智能推荐到自动驾驶&#xff0c;大模型正逐渐渗透到我们生活的方方面面。那么&#xff0c;如何从菜鸟成长为模型大师呢&#xff1f;本文将为你…

拥抱ASPICE标准——让软件开发更高效、更安全

随着科技的飞速发展&#xff0c;软件已经渗透到我们生活的方方面面&#xff0c;从智能手机到智能家居&#xff0c;从自动驾驶到云计算&#xff0c;软件已经成为了现代社会不可或缺的一部分。然而&#xff0c;随着软件复杂性的不断提升&#xff0c;如何确保软件的质量、可靠性和…

HOT100与剑指Offer

文章目录 前言一、560. 和为 K 的子数组&#xff08;HOT100&#xff09;二、17. 从1到n整数中1出现的次数&#xff08;剑指Offer&#xff09;总结 前言 一个本硕双非的小菜鸡&#xff0c;备战24年秋招&#xff0c;计划刷完hot100和剑指Offer的刷题计划&#xff0c;加油&#x…

分形之科赫雪花

前言 分形是一种具有自相似性的几何图形或数学对象。它的特点是无论在任何放大或缩小的尺度下,都能够看到与整体相似的图形。分形的形状可以非常复杂,常常具有分支、重复的图案,以及细节层次丰富的结构。 分形在自然界中广泛存在,如云朵、树枝、山脉、海岸线等,它们都展…

深入理解 Spring Boot 注解:核心功能与高级用法详解

深入理解 Spring Boot 注解&#xff1a;核心功能与高级用法详解 Spring Boot 是一种用来简化新 Spring 应用的初始搭建及开发过程的框架&#xff0c;采用大量注解来减少配置和加速开发。本文将详细介绍 Spring Boot 常用的注解及其应用&#xff0c;帮助开发者更好地理解和使用…

【C语言】基于C语言实现的贪吃蛇游戏

【C语言】基于C语言实现的贪吃蛇游戏 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C语言学习之路 文章目录 【C语言】基于C语言实现的贪吃蛇游戏前言一.最终实现效果一.Win32 API介绍1.1Win32 API1.2控制台程序1.3控制台屏幕上的坐标COORD…

SpringMVC框架学习笔记(二):@RequestMapping 注解的各种用法

1 基本使用 RequestMapping 注解可以指定控制器/处理器的某个方法的请求的 url&#xff0c;如下 RequestMapping(value "/login") public String login(){} 2 RequestMapping 注解其它使用方式 1.1 RequestMapping 可以修饰方法和类 说明 : RequestMapping 注解可…