1

フィールド名の結果を持つMySQLテーブルがあります。イベントを使用して XX:50秒ごとに実行し、フィールドの値を乱数で更新したいと考えています。

XX:50 秒ごとの構文に関するヘルプが必要です。

このクエリを試しました。

CREATE EVENT `testEvent` 
ON  SCHEDULE EVERY 50 SECOND 
DO BEGIN

SET @A := (SELECT MAX(`id`) FROM `table`);

UPDATE `table` SET `field` = (RAND()*18) WHERE `id` = @A;   

END

このクエリを使用すると、最初の更新は 00:00:50 に行われ、次の更新は 00:01:40、00:02:30 などに行われます。

しかし、00:00:50、00:01:50、00:02:50などに実行したい..

4

1 に答える 1

12

MySqlイベント

50秒ごとに更新を実行するには:

CREATE EVENT myevent
ON SCHEDULE EVERY 50 SECOND
DO
   UPDATE yourdb.yourtable SET yourcolumn = RAND();

2分50秒ごとにそれを行うには:

CREATE EVENT myevent
ON SCHEDULE EVERY '2:50' MINUTE_SECOND
DO
   UPDATE yourdb.yourtable SET yourcolumn = RAND();

SHOW PROCESSLISTイベントスケジューラが有効になっているかどうかを確認するために使用します。オンの場合Daemon、ユーザーによるプロセス「」が表示されますevent_schedulerSET GLOBAL event_scheduler = ON;現在有効になっていない場合は、スケジューラを有効にするために使用します。イベントスケジューラの設定について詳しくは、こちらをご覧ください

于 2013-01-26T19:41:38.717 に答える