在MySQL里面能实现定时执行任务么?比如说我想每个月月初进行一定的数据融合,有没有办法让MySql数据库每月1号的某个时间自动执行存储过程或是其他脚本?

解决方案 »

  1.   

    linux下只能用
    crontab
    对于Windows主机
    ==============
    假想环境:
    MySQL 安装位置:C:\MySQL
    论坛数据库名称为:bbs
    MySQL root 密码:123456
    数据库备份目的地:D:\db_backup\程序代码@echo off
    C:\MySQL\bin\mysqladmin -u root --password=123456 shutdown
    C:\MySQL\bin\mysqldump --opt -u root --password=123456 bbs > D:\db_backup\bbs.sql
    C:\MySQL\bin\mysqld-nt
    将以上代码保存为backup_db.bat
    然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)
      

  2.   

    我想问的是MySQL里面有没有像oracle的job一样的东西,我们能够设定来定时执行一些任务。谢谢ls的朋友也给我提供了一种解决方法。ashchen(輝輝):您说的5.1中支持,哪里有这样的资料呢?我昨天翻了一下manual没有看到,这个问题有点急,能不能多指点我一下~:)
      

  3.   

    查询一下 create event 就知道了
      

  4.   

    CREATE EVENT
    [IF NOT EXISTS] /* 标注 1 */
    event_name /* 标注 2 */
    ON SCHEDULE schedule /* 标注3 */
    [ON COMPLETION [NOT] PRESERVE] /* 标注4 */
    [ENABLE | DISABLE] /* 标注5 */
    [COMMENT 'comment'] /* 标注6 */
    DO sql_statement /* 标注7 */
    标注 3: ON SCHEDULE 计划任务
    有两种设定计划任务的方式:
    AT 时戳
    /* "单次的计划任务" */
    EVERY 时间(单位)的数量 时间单位 [STARTS 时戳] [ENDS时戳]
    /* "重复的计划任务" */
    在两种计划任务中,时戳可以是任意的TIMESTAMP 和DATETIME 数据类型,要
    求提供的是将来的时间(大于CURRENT_TIMESTAMP),而且小于Unix时间的
    最后时间(等于或小于'2037-12-31 23:59:59')。
      

  5.   

    谢谢楼上,可是我去试验了,在5.1.12里面不能使用Create event的语句,我查到资料说从5.1.6中开始有这个功能的,为什么5.1.12里面不能用我用的是MySQL Community Server,不是Enterprise,这个有关系么?谢谢了
      

  6.   

    我的mysql也不能使用Create event
    建议你还是用bat文件做吧
      

  7.   

    用系统的定时吧。MYSQL现在还不支持。
      

  8.   

    CREATE EVENT
    是哪个版本的数据库?