MySQL如何通过命令停止执行中的存储过程

   在开发一个项目的过程当中,有个场景是这样的,通过在存储过程里面循环的执行一个更新操作,执行的过程会持续比较长时间,这个时候操作员会根据现场的情况,把更新操作停止,改为手动更新模式。
        根据这个现实的需要,通过查资料,可以通过获取当前执行Sql的Id进行操作,我是想在程序调用的时候获取当前调用此存储过程的Id,然后根据此Id将存储过程Kill,但是找不到方法获取调用存储过程的Id,我发现在nivate里面有个功能是停止正在运行的sql,我试了下存储过程在执行过程中也可以停止,但是不知道如何实现,请问各位老师有没有什么好的解决方案或者思路,请不吝赐教,感谢!

http://blog.csdn.net/lidan3959/article/details/22737877

如果是c#语言,可以用SqlCommand.Cancel达到目的。

这是官方范例:

SqlCommand.Cancel Method ()

重要说明:

  • 例子中是中止Sql语句,中止存储过程也是一样的。
  • SqlCommand必须在另一个线程,否则SqlCommand结束前Cancel不会被调用。
  • SqlCommand有一个属性是CommandTimeout, 可以实现当超过限时后中止执行。

http://bbs.csdn.net/topics/330170436

1.使用SQL的方式的话,Mysql支持 show processlist来显示正在执行中SQL.包括任务的id,执行时间。
2.使用kill id 命令终止它的执行
3.如果你要使用程序的方式的话,processlist其实就是mysql一个系统表,你可以根据你的需要些SQL直接查询出你结束不掉的这条SQL
的信息。

 show processlist
 kill id