如何在不运行左语句的情况下终止mysql sql文件的执行

时间:2014-11-27 08:05:54

标签: mysql

假设我们有一个名为test

的表
create table test 
(
    id int not null,
    primary key (id)
) engine = innodb;

和sql文件1.sql

 start transaction;
 insert into test(id) values(1);
 select sleep(100);
 select * from test;
 commit;

我们使用mysql客户端工具运行1.sql

mysql -uroot < 1.sql

它将阻止&#34;选择睡眠(100)&#34;声明。如果我按&#34; Ctrl-C&#34;,只有mysql客户端 杀死当前语句继续执行左语句。作为结果, 插入将提交。有没有一种方法可以在没有执行的情况下终止sql文件的执行 左边的陈述?

PS:我试过&#34; Ctrl + \&#34;中止mysql客户端,这将使查询仍然执行 在服务器端,因为发送 kill查询

2 个答案:

答案 0 :(得分:0)

您可以打开第二个连接,使用SHOW PROCESSLIST检查要终止的会话,然后使用SQL KILL命令终止它。

另见http://dev.mysql.com/doc/refman/5.6/en/kill.html

http://dev.mysql.com/doc/refman/5.6/en/show-processlist.html

答案 1 :(得分:0)

它应该回滚,因为事务尚未提交。(通过杀死第三个查询)。