Mysql根據資料庫的時間欄位到點更新另外的狀態。

2021-07-25 11:18:36 字數 1237 閱讀 6272

需求如下:

新增一條提醒,被提醒人在提醒時間未到達的時候收不到此提醒,提醒時間到了則更改狀態,被提醒人看到該提醒。

實現如下:

1. 開啟event_scheduler sql指令

show variables like '%event_scheduler%';

set global event_scheduler = on;

set @@global.event_scheduler = on;

set global event_scheduler = 1;

set @@global.event_scheduler = 1;

2. 定義儲存過程

delimiter |

drop procedure if exists update_remind_status |

create procedure update_remind_status()

begin

if exists (select id from remind where status='1' and sysdate()>=remind_time) then

update remind_receive set `status`='1'

where remind_id in (select id from remind where `status`='1' and sysdate()>=remind_time) and `status`='3';

end if;

end

|delimiter;

3. 建立定時器,每間隔一秒呼叫一次儲存過程。

delimiter //

create event event_remind_status

on schedule every 1 second do

begin

call update_remind_status();

end //

delimiter;

4.啟動定時器

alter event event_remind_status on  

completion preserve enable;

經過測試可成功。

參考文章 mysql event時間觸發器   , 定時更新表字段的值 。

mysql 去重 根據id 資料庫根據指定欄位去重

需求 對一張使用者表根據name email card num欄位去除重複資料 思路 用group by方法可以查詢出 去重 後的資料,將這些資料儲存到一張臨時表中,然後將臨時表的資料儲存到指定的表中 誤區及解決方案 group by方法只能獲取部分字段 去重指定字段 不能一次獲取到完整的資料,但是...

資料庫設計的時間字段

在家自己做專案,研究了一下資料庫設計,記下學習成果。資料庫欄位的時間設計很多公司都會選擇字串型別,這個是有爭議的。其實這個時間型別的選擇,主要看需求,varchar型別也是可以用的,資料庫中的時間僅僅是用來顯示 查詢的,那麼影響還不算大,但如果對時間字段進行一些演算法如計算星期幾,或者格式化型別不同...

mysql資料庫字段加密

linux version centos7.3 mysql vrsion mysql5.6.34 最近兩天,接到業務上乙個需求,需要對錶中的部分字段 比如手機號,email 進行加密,在檢視mysql的相關資料後,發現需要對資料庫中的部分字段加密,基本就只能從業務層面的角度來實現。大概提供了如下幾個...