在开发一个项目的过程当中,有个场景是这样的,通过在存储过程里面循环的执行一个更新操作,执行的过程会持续比较长时间,这个时候操作员会根据现场的情况,把更新操作停止,改为手动更新模式。
根据这个现实的需要,通过查资料,可以通过获取当前执行Sql的Id进行操作,我是想在程序调用的时候获取当前调用此存储过程的Id,然后根据此Id将存储过程Kill,但是找不到方法获取调用存储过程的Id,我发现在nivate里面有个功能是停止正在运行的sql,我试了下存储过程在执行过程中也可以停止,但是不知道如何实现,请问各位老师有没有什么好的解决方案或者思路,请不吝赐教,感谢!
http://blog.csdn.net/lidan3959/article/details/22737877
如果是c#语言,可以用SqlCommand.Cancel达到目的。
这是官方范例:
重要说明:
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