在数据库db_test中创建一个事件,用于每个月将表content中姓名为“MySQL初学者”的留言人所发的全部留言信息删除,该事件开始于下个月并且在2013年12月31日结束。
二、简答题
1.请解释什么是事件?
2.请简述事件的作用。
3·请简述事件与触发器的区别。
习题答案
一、编程题
在MySQL命令行客户端输入如下SQL语句即可实现:
mysql>USE db_test;
Database changed
mysql>DELIMITER$$
mysql>CREATE EVENT IF NOT EXISTS event_delete_content
—> ON SCHEDULE EVERY l MONTH
—>STARTS CURDATE()+INTERVAL l MONTH
—>ENDS’2013—12—31’
—>DO
—>BEGIN
—>IF YEAR(CURDATE())<2013 THEN
—>DELETE FROM content
—>WHERE username=’MySQL初学者’;
—>END IF;
—>END$$
Query OK。0 rows affected(2.35 see)
二、简答题
1.事件就是需要在指定的时刻才被执行的某些特定任务,其中这些特定任务通常是一些确定的SQL语句。
2.事件可以根据需要在指定的时刻被事件调度器调用执行,并以此可取代原先只能由操作系统的计划任务来执行的工作。
3.事件和触发器相似,都是在某些事情发生的时候才被启动,因此事件也可称作临时触发器(temporal trig—ger)。其中,事件是基于特定时间周期触发来执行某些任务,而触发器是基于某个表所产生的事件触发的,它们的区别也在于此。