以下を調べてください。
select CURRENT_TIMESTAMP;
を発行します または
select count(*) as theCount
from customer_group
where is_status=1 and CURRENT_TIMESTAMP >= end_date;
言い換えれば、いくつかの偵察を行います。イベントにはユーザーインターフェイスがないため、イベントはサイレントに成功または失敗します。
次のようなコマンドを実行します:
show variables where variable_name='event_scheduler';
-現在オフ(またはオンになっている可能性があります)
作成時にイベントの開始時刻を指定し、ON COMPLETION PRESERVE
を指定します
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 ;
イベントハンドラーをオンにします:
SET GLOBAL event_scheduler = ON; -- turn her on and confirm below
確認してください:
show variables where variable_name='event_scheduler';
特定のデータベース内のすべてのイベントのステータスをデータベース名で調べます:
show events from stackoverflow; -- note stackoverflow is my database name
現在選択されているデータベースで特定のイベントを名前で無効または有効にします:
ALTER EVENT Every_2_Minutes_QuestionUpdateImport disable;
ALTER EVENT Every_2_Minutes_QuestionUpdateImport enable;
最後になりましたが、新しいイベントを作成するときは、常に最初にイベントステートメントを追加して、ログテーブルにログを記録します(挿入ステートメントとnow()
の日時を使用します。 )。そうすれば、それが起動し、あなたのようなwhere句のデータが、全体について間違った読み方をしていない可能性があることを私は知っています。
そして、私はあちこちで夢中になっていることを意味します。最初は、後で削除します:
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
すべての実用的な目的のために覚えておいてください(おそらくあなたがあなたの質問から本当に気にかけているあなたのテーブルを除いて)...そのEvtsLog
私のは、イベントプログラマーおよび親友としての唯一のユーザーインターフェイスです。
ON COMPLETION PRESERVE > と同様に他のものを意味します。