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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM