Home >Database >Mysql Tutorial >MySQL事件的正确运行方案介绍

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

WBOY
WBOYOriginal
2016-06-07 16:09:411029browse

你是否对获得一个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事件的介绍,望你能有所收获。


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn