windows任务计划执行mysql存储过程:
Proc_Del_Alltb():删除test_db数据库中所有记录;
环境:
mysql 5.0.83我现在是这样操作的:
在CMD下添加任务:
at 0:15 /every:M,T,W,Th,F,S,Su "d:\mysql\mysql server 5.0\bin\mysqldump.exe" -hlocalhost -uroot -pxxx test_db "call Proc_Del_Alltb()"再到任务计划中运行该JOB。查询数据库发现,并没有执行成功,数据依然存在。再MYSQL环境下执行call Proc_Del_Alltb(),数据删除成功!这是怎么回事,是不是AT语句写的不对?

解决方案 »

  1.   

    试试:
    mysql -uroot -p -e "call Proc_Del_Alltb()"
      

  2.   

    mysqldump.exe是导出的命令 怎么能执行sql
      

  3.   

    at 0:15 /every:M,T,W,Th,F,S,Su "d:\mysql\mysql server 5.0\bin\mysqldump.exe" -hlocalhost -uroot -pxxx test_db -e "call Proc_Del_Alltb()"可行,
    -e是什么意思?
      

  4.   

     -e, --execute=name  Execute command and quit. (Disables --force and history
                         file)
      

  5.   

    楼主执行SQL语句应该用MYSQL而不是MYSQLDUMP。-E 是执行命令的参数。建议楼主参考一下MYSQL的手册。
      

  6.   

    写错了,应该是mysql.exe,另外,一天内多个时间运行的AT语句该怎么写?
      

  7.   

    windows下的图形化的计划任务设置很好用吧
    多建几个计划任务
      

  8.   

    1.建立测试表,存储过程。mysql> use test;
    Database changedmysql> create table tb_test(id int);
    Query OK, 0 rows affected (0.11 sec)mysql> select * from tb_test;
    Empty set (0.00 sec)mysql> DROP PROCEDURE IF EXISTS up_test;
        -> //
    Query OK, 0 rows affected (0.09 sec)mysql> CREATE PROCEDURE up_test ()
        -> BEGIN
        ->  INSERT INTO tb_test values(1);
        -> END;
        ->
        -> //
    Query OK, 0 rows affected (0.02 sec)mysql> delimiter ;
    2.创造执行存储过程的bat文件:Up_test.bat"D:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe" -hlocalhost -uroot -pXXX -Dtest -e "call up_test()"
    3.执行Schedule Tasks,测试C:\Documents and Settings\Administrator>schtasks /run /TN "schedule task test"
    成功: 尝试运行 "schedule task test"。
      

  9.   

    补充:
    执行计划任务的结果
    mysql> select * from tb_test;
    +------+
    | id   |
    +------+
    |    1 |
    +------+
    1 row in set (0.00 sec)另外建议你不要讲Command写到schedule tasks里面,因为这样子以后修改维护起来很麻烦,最好将Command写到Bat文件里面去,Schedule tasks调用Bat即可。我给你的例子也是基于这个思路的。
      

  10.   

    bat文件的登录密码是公开的,用cmd创造的任务,不能被修改,看不到密码。