>데이터 베이스 >MySQL 튜토리얼 >MySQL事件的正确运行方案介绍

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

WBOY
WBOY원래의
2016-06-07 16:09:411032검색

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


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.