Heim >Datenbank >MySQL-Tutorial >MySQL事件的正确运行方案介绍
你是否对获得一个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事件的介绍,望你能有所收获。