MySQL solusi:
Anda memerlukan event
MySQL untuk berjalan berdasarkan waktu.
Dan saya sarankan Anda menulis update
pernyataan berdasarkan kondisi Anda dan tautkan prosedur yang sama ke penjadwal acara yang ingin Anda jalankan di setiap awal hari.
Anda dapat melakukannya sebagai berikut:.
Contoh :
delimiter //
drop event if exists event_scheduling_sample;
create event if not exists event_scheduling_sample
-- on schedule every 86400 second starts 00:00:00
-- at timestamp( adddate( current_date, 1 ),'00:00:00' )
-- on schedule every 1 day
-- starts current_timestamp
-- ends current_timestamp + interval '5' day
-- on schedule every 1 day
-- starts current_timestamp
-- ends timestamp( current_date,'23:59:59' )
on schedule every 1 day
starts timestamp( current_date + 1, '00:00:00' )
comment 'event scheduling sample'
do
call db_name.procedure_name_that_updates_the_user_records();
;
//
delimiter ;
Lihat :MySQL:CREATE EVENT Syntax
Status default Penjadwal Acara adalah DINONAKTIFKAN.
Anda harus mengaktifkannya dengan salah satu pernyataan berikut.
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
Saat Penjadwal Acara AKTIF, utas penjadwal acara tercantum dalam output SHOW PROCESSLIST
sebagai proses daemon, dan statusnya direpresentasikan seperti yang ditunjukkan di sini:
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
Id: 1
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: show processlist
*************************** 2. row ***************************
Id: 2
User: event_scheduler
Host: localhost
db: NULL
Command: Daemon
Time: 3
State: Waiting for next activation
Info: NULL
2 rows in set (0.00 sec)
Setelah Penjadwal Acara AKTIF, Anda akan melihatnya berfungsi.
Lihat :Konfigurasi Penjadwal Acara MySQL