Heim >Datenbank >MySQL-Tutorial >MySQL事件的正确运行方案介绍

MySQL事件的正确运行方案介绍

WBOY
WBOYOriginal
2016-06-07 16:09:411032Durchsuche

你是否对获得一个MySQL事件的实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下的文章主要是介绍获得一个MySQL事件的方案,以下就是相关内容的具体描述。 操作系统中的计划任务(WINDOWS)或CRONTABL(LINUX/UNIX) MySQL版

你是否对获得一个MySQL事件的实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下的文章主要是介绍获得一个MySQL事件的方案,以下就是相关内容的具体描述。

操作系统中的计划任务(WINDOWS)或CRONTABL(LINUX/UNIX)

MySQL版本5.1以上,create event

<ol class="dp-xml">
<li class="alt"><span><span>CREATE   </span></span></li>
<li>
<span>[</span><span class="attribute">DEFINER</span><span> = { user | CURRENT_USER }]   </span>
</li>
<li class="alt"><span>EVENT   </span></li>
<li><span>[IF NOT EXISTS]   </span></li>
<li class="alt"><span>event_name   </span></li>
<li><span>ON SCHEDULE schedule   </span></li>
<li class="alt"><span>[ON COMPLETION [NOT] PRESERVE]   </span></li>
<li><span>[ENABLE | DISABLE | DISABLE ON SLAVE]   </span></li>
<li class="alt"><span>[COMMENT 'comment']   </span></li>
<li><span>DO sql_statement;   </span></li>
<li class="alt"><span>schedule:   </span></li>
<li><span>AT timestamp [+ INTERVAL interval] ...   </span></li>
<li class="alt"><span>| EVERY interval   </span></li>
<li><span>[STARTS timestamp [+ INTERVAL interval] ...]   </span></li>
<li class="alt"><span>[ENDS timestamp [+ INTERVAL interval] ...]   </span></li>
<li><span>interval:   </span></li>
<li class="alt"><span>quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |   </span></li>
<li><span>WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |   </span></li>
<li class="alt"><span>DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}   </span></li>
<li>MySQL<span class="tag">></span><span> SELECT NOW();   </span>
</li>
<li class="alt"><span>+---------------------+   </span></li>
<li><span>| NOW() |   </span></li>
<li class="alt"><span>+---------------------+   </span></li>
<li><span>| 2006-02-10 23:59:01 |   </span></li>
<li class="alt"><span>+---------------------+   </span></li>
<li><span>1 row in set (0.04 sec)   </span></li>
<li class="alt"><span> </span></li>
<li>MySQL<span class="tag">></span><span> CREATE EVENT e_totals   </span>
</li>
<li class="alt">
<span>-</span><span class="tag">></span><span> ON SCHEDULE AT '2006-02-10 23:59:00'   </span>
</li>
<li>
<span>-</span><span class="tag">></span><span> DO INSERT INTO test.totals VALUES (NOW());   </span>
</li>
<li class="alt"><span>Query OK, 0 rows affected, 1 warning (0.00 sec)   </span></li>
<li>MySQL<span class="tag">></span><span> SHOW WARNINGS\G   </span>
</li>
<li class="alt"><span>*************************** 1. row ***************************   </span></li>
<li><span>Level: Note   </span></li>
<li class="alt"><span>Code: 1588   </span></li>
<li><span>Message: Event execution time is in the past and ON COMPLETION NOT   </span></li>
<li class="alt"><span>PRESERVE is set. The event was dropped immediately after   </span></li>
<li><span>creation.  </span></li>
<li class="alt"><span>create event   </span></li>
</ol>

MySQL事件中定时delete

<ol class="dp-xml">
<li class="alt">MySQL<span><span class="tag">></span><span> CREATE EVENT e_totals   </span></span>
</li>
<li>
<span>-</span><span class="tag">></span><span> ON SCHEDULE AT '2006-02-10 23:59:00'   </span>
</li>
<li class="alt">
<span>-</span><span class="tag">></span><span> DO INSERT INTO test.totals VALUES (NOW()); Query OK, 0 rows affected, 1 warning (0.00 sec)  </span>
</li>
<li>MySQL<span class="tag">></span><span> CREATE EVENT  </span>
</li>
<li class="alt">
<span>-</span><span class="tag">></span><span> event_name  </span>
</li>
<li>
<span>-</span><span class="tag">></span><span> ON SCHEDULE EVERY 1 DAY STARTS '2009-09-20 23:40:00'  </span>
</li>
<li class="alt">
<span>-</span><span class="tag">></span><span> DO delete from t2;  </span>
</li>
<li><span>Query OK, 0 rows affected (0.14 sec)  </span></li>
<li class="alt"><span> </span></li>
</ol>

这个建议用MySQL本上的event来实现; 也可以用操作系统的计划任务来处理; 或自己写个程序用定时器来触发。以上的相关内容就是对一个MySQL事件的介绍,望你能有所收获。


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn