Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengapa jadwal acara mysql tidak berfungsi di database localhost?

Simak berikut ini.

Keluarkan select CURRENT_TIMESTAMP; atau

select count(*) as theCount
from customer_group
where is_status=1 and CURRENT_TIMESTAMP >= end_date;

Dengan kata lain, lakukan pengintaian. Acara berhasil atau gagal secara diam-diam karena tidak memiliki antarmuka pengguna.

Jalankan beberapa perintah seperti:

show variables where variable_name='event_scheduler';

-- saat ini OFF (atau bisa juga ON)

Tentukan waktu mulai acara Anda selama pembuatan, dan tentukan ON COMPLETION PRESERVE seperti

drop event if exists `Every_5_Minutes_QuestionUpdateImport`;
DELIMITER $$
CREATE EVENT `Every_5_Minutes_QuestionUpdateImport`
  ON SCHEDULE EVERY 5 MINUTE STARTS '2015-09-01 00:00:00'
  ON COMPLETION PRESERVE
DO BEGIN
    --
    -- all your statements go here
    -- 
END$$
DELIMITER ;

Aktifkan pengendali acara:

SET GLOBAL event_scheduler = ON;  -- turn her on and confirm below

Konfirmasikan:

show variables where variable_name='event_scheduler';

Periksa status semua peristiwa dalam database tertentu dengan nama database:

show events from stackoverflow; -- note stackoverflow is my database name 

Nonaktifkan atau aktifkan acara tertentu dengan nama di db yang dipilih saat ini:

ALTER EVENT Every_2_Minutes_QuestionUpdateImport disable;
ALTER EVENT Every_2_Minutes_QuestionUpdateImport enable;

Dan last but not least, ketika saya menulis Acara baru, saya selalu menambahkan awalnya dalam pernyataan acara untuk masuk ke tabel log (dengan pernyataan insert dan datetime now() ). Dengan begitu, saya tahu itu diaktifkan dan bahwa data dalam klausa di mana seperti milik Anda mungkin tidak membuat saya salah membaca semuanya.

Dan maksud saya, saya menjadi gila di mana-mana. Awalnya, lalu saya keluarkan nanti:

    set filename:=concat('c:\\datavault\\stackoverflow\\app01\\batches\\processMe_',LPAD(@idToPerform, 8, '0'),'.txt');
    set logMsg:=concat("It would appear I am to process this thing: ",filename);

    insert EvtsLog(incarnationId,evtName,step,debugMsg,dtWhenLogged)
    select incarnationId,evtAlias,10,logMsg,now(); -- 10: some step somewhere in the middle

Ingat untuk semua tujuan praktis (kecuali mungkin meja Anda yang benar-benar Anda pedulikan dari pertanyaan Anda) ... bahwa EvtsLog milik saya adalah satu-satunya antarmuka pengguna Anda sebagai pemrogram Acara dan sahabat Anda.

Lihat halaman manual untuk mengetahui apa PADA PERAWATAN PENYELESAIAN berarti serta hal-hal lain.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memperbarui kolom dengan nilai nol

  2. MySQL mendapatkan nilai acak antara dua nilai

  3. Bisakah sebuah tabel memiliki dua kunci asing?

  4. Kesalahan MySQL 8.0.11 terhubung ke caching_sha2_password modul yang ditentukan tidak dapat ditemukan

  5. Terhubung ke server MySQL melalui SSH di PHP