示例7:REPEAT的使用
  mysql> delimiter //
  mysql> CREATE PROCEDURE dorepeat(p1 INT)
  -> BEGIN
  -> SET @x = 0;
  -> REPEAT
  -> SET @x = @x + 1;
  -> UNTIL @x > p1 END REPEAT;
  -> END
  -> //
  Query OK, 0 rows affected (0.00 sec)
  mysql> CALL dorepeat(1000)//
  Query OK, 0 rows affected (0.00 sec)
  mysql> SELECT @x//
  +------+
  | @x |
  +------+
  | 1001 |
  +------+
  1 row in set (0.00 sec)
  WHILE语句
  [begin_label:] WHILE search_condition DO
  statement_list
  END WHILE [end_label]
  有条件的循环,与REPEAT的区别在于:WHILE是满足条件才执行循环,REPEAT是满足条件退出循环;WHILE在首次循环执行之前潘丹条件,所以少执行0次,而REPEAT是在首次执行循环之后才判断条件,所以循环少执行1次。
  示例8:WHILE的使用
  REATE PROCEDURE dowhile()
  BEGIN
  DECLARE v1 INT DEFAULT 5;
  WHILEv1 > 0 DO
  ...
  SETv1 = v1 - 1;
  ENDWHILE;
  END;
  事件调度器
  事件调度器是MySQL5.1后新增的功能,可以将数据库按自定义的时间周期触发某种操作,可以理解为定时任务,类似Linux系统下的定时任务crontab
  如:
  CREATE EVENT myevent
  ONSCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
  DO
  UPDATE myschema.mytable SET mycol = mycol + 1;
  其中:
  <1>事件名称在CREATE EVENT关键字之后指定;
  <2>通过ON SCHEDULE子句指定事件在何时执行及执行频次;
  <3>通过DO子句指定要执行的具体操作或事件。
  上面的示例中创建一个创建后立即执行的调度事件,执行频次为1小时,执行内容为更新表数据。
  事件调度器默认是关闭的,需要打开:
  SET GLOBAL event_scheduler = 1;
  如果事件调度器不再使用,可以禁用(disable)或删除(drop):
  ALTER EVENT myevent disable;
  DROP EVENT myevent;