Mysql循环语句,死循环解决办法

delimiter //                            #定义标识符为双斜杠
drop procedure if exists test;          #如果存在test存储过程则删除
create procedure test()                 #创建无参存储过程,名称为test
  begin
    declare i int;                      #申明变量
    set i = 0;                          #变量赋值
    while i < 50 do                     #结束循环的条件: 当i大于10时跳出while循环
      INSERT INTO table_test
      ( name
      )
      VALUES
        (
          '123'
        );
      SET i=i+1;               #循环条件不能丢
    end while;                          #结束while循环
    select * from test;                 #查看test表数据
  end
    //                                      #结束定义语句
call test();                            #调用存储过程

以上是mysql循环语句,但我在执行的时候忘了加上SET 循环条件,导致SQL无限循环往表里插入数据

这种情况光是关闭SQL窗口,是不管用的,SQL会在后台继续运行,需要找到对应线程,手动杀死

#展示所有运行中的线程,线程信息里会展示对应SQL
SHOW PROCESSLIST;
#杀掉对应线程id
KILL 123456;

 

转载于:https://www.cnblogs.com/wanshiming/p/11356425.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL自连接是指在一个表中将其自身作为连接的目标表。通过自连接,可以将表中的数据与同一表中的其他数据进行比较和关联。 为了避免自连接导致的循环,可以使用以下方法之一: 1. 使用别名:在自连接查询中,使用别名来区分连接的两个表。通过给每个表起一个不同的别名,可以明确指定每个表的角色,避免循环。 例如,假设有一个名为"employees"的表,包含员工的信息。要进行自连接查询,可以使用以下语句: ``` SELECT e1.employee_name, e2.manager_name FROM employees e1 JOIN employees e2 ON e1.manager_id = e2.employee_id; ``` 在这个例子中,"e1"和"e2"是两个不同的别名,分别表示员工和他们的经理。 2. 添加限制条件:在自连接查询中,可以添加限制条件来限制结果集的大小,避免无限循环。 例如,可以添加一个限制条件来只返回特定级别的员工及其经理: ``` SELECT e1.employee_name, e2.manager_name FROM employees e1 JOIN employees e2 ON e1.manager_id = e2.employee_id WHERE e1.level = 'Junior'; ``` 这样可以确保只返回特定级别的员工及其经理,而不会陷入无限循环。 3. 使用外连接:如果自连接可能导致循环,可以考虑使用外连接来避免。 例如,可以使用左外连接来获取每个员工及其经理的信息,而不管他们是否有经理: ``` SELECT e.employee_name, m.manager_name FROM employees e LEFT JOIN employees m ON e.manager_id = m.employee_id; ``` 这样可以确保即使某些员工没有经理,也能够获取到他们的信息,而不会陷入循环

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值