短篇小说:我在循环中编写了一个代码,将行插入到mysql表中,并使其意外运行3个小时。我试图清空mysql表,但是它再次自动开始插入行。我甚至尝试删除并重新创建它,但它会自动插入行(id
按升序排列)
全文:
2天前,我编写了一个使用API的代码,并将数据插入到mysql表中(在循环中)。为了确定,我添加了多少条记录,我制作了一张名为" lastrequestdone
"并在每个记录成功插入后开始插入id
个数字。
但代码在1小时内插入了所有ID,之后,API开始出错:404响应,循环开始运行得非常快。
因此,假设我运行了3个小时的循环,以递增的顺序插入id
。但是一旦我意识到这一点,我就停止了循环。试图清空表,但每当我清空表时,会自动开始插入更多行。
然后我放弃了桌子,今天再次创建它,但同样的事情正在发生。行自动插入。
答案 0 :(得分:2)
使用MySQL
之类的任何UI工具或类似工具查找MySQL Workbench
服务器中的进程,并尝试查找您运行的查询过程并停止该特定进程。你应该这样解决它。
答案 1 :(得分:1)
你的意思是“杀死/停止MySQL实例”linux命令kill -9 ......? 是的,这可能会导致数据损坏。
而不应该留下损坏的数据是MySQL的build-in kill command。请参阅页面的下半部分,其中指出可能需要一段时间才能实际注意到kill标志的存在。声明它的部分不会在不使用事务时回滚更新(这意味着它会在使用事务时回滚更新)等等。因此,我认为这不会破坏任何数据(除了杀死修复和优化,如此处所述)
找到此命令所需的线程ID