MySQL脚本以块的形式删除数据,直到所有低于id的内容都被删除

MySQL脚本以块的形式删除数据,直到所有低于id的内容都被删除,mysql,phpmyadmin,mysql-management,Mysql,Phpmyadmin,Mysql Management,我需要一个MySQL脚本,它可以执行以下操作: 删除数据库的块,直到它删除了所有大于10000的链接 exmaple: x = 10000 DELETE FROM pligg_links WHERE link_id > x and link_id < x+10000 x = x + 10000 ... x=10000 从链接id>x且链接id10000且链接id20000且链接id

我需要一个MySQL脚本,它可以执行以下操作:

删除数据库的块,直到它删除了所有大于10000的链接

exmaple:

x = 10000
DELETE FROM pligg_links WHERE link_id > x and link_id < x+10000
x = x + 10000
...
x=10000
从链接id>x且链接id
所以它会删除

DELETE FROM pligg_links WHERE link_id > 10000 and link_id < 20000
从链接id>10000且链接id<20000的pligg_链接中删除
然后

从链接id>20000且链接id<30000的pligg_链接中删除
直到所有少于10000的id都被删除

我需要这个,因为数据库非常非常大(超过一个gig)


提前感谢

问题出在哪里:

DELETE FROM pligg_links WHERE link_id > 10000
还有另一种方法:(只需按顺序执行这3个查询)

Step1:插入到pligg_链接中,从链接id<10000的pligg_链接中选择*;
步骤2:删除pligg_链接;
步骤3:插入pligg_链接从pligg_链接中选择*

中的问题是什么::

DELETE FROM pligg_links WHERE link_id > 10000
还有另一种方法:(只需按顺序执行这3个查询)

Step1:插入到pligg_链接中,从链接id<10000的pligg_链接中选择*;
步骤2:删除pligg_链接;
步骤3:插入pligg_链接从pligg_链接中选择*

您可以使用
LIMIT
语句来调节一步删除多少项:

DELETE FROM pligg_links
WHERE link_id > 10000
LIMIT 1000;
说:

要删除的MySQL特定限制行数选项告诉服务器 返回控件之前要删除的最大行数 客户。这可用于确保给定的DELETE语句 不会花太多时间。您只需重复删除即可 语句,直到受影响的行数小于限制 价值观

您可以使用
SELECT ROW_COUNT()确定删除的行数如果要自动删除:


您可以使用
LIMIT
语句来调节一步删除多少项:

DELETE FROM pligg_links
WHERE link_id > 10000
LIMIT 1000;
说:

要删除的MySQL特定限制行数选项告诉服务器 返回控件之前要删除的最大行数 客户。这可用于确保给定的DELETE语句 不会花太多时间。您只需重复删除即可 语句,直到受影响的行数小于限制 价值观

您可以使用
SELECT ROW_COUNT()确定删除的行数如果要自动删除:



一次将其全部删除太大了!相信我,我试过了,整个服务器和所有站点都停止了工作(我等了一个小时才重新启动服务器),而
DROP
想要成为
TRUNCATE
,我想:)不,这将是一个下降,因为在第3步中,你正在隐式地创建表。你能告诉我,为了使sql查询正常工作,我必须通过哪些步骤吗?谢谢!然后答案应该是你的;)它的大删除它一次全部!相信我,我试过了,整个服务器和所有站点都停止了工作(我等了一个小时才重新启动服务器),而
DROP
想要成为
TRUNCATE
,我想:)不,这将是一个下降,因为在第3步中,你正在隐式地创建表。你能告诉我,为了使sql查询正常工作,我必须通过哪些步骤吗?谢谢!然后答案应该是你的;)@biziclop所以我每次都要自己运行这个程序,还是它会自动循环?它不会自动循环,要循环,你可以创建一个mysql存储过程,或者一个小的php脚本。或者,如果可能的话,考虑Sashi Kant的第二步一步解决方案。@ BIZICLOP,所以我必须每次运行这个自己,还是自动循环?它不会自动循环,到循环,你可以创建一个MySQL存储过程,或者一个小PHP脚本。或考虑Sashi Kant的第二步一步解决方案,如果可能。检查我的更新答案,它将解决你的问题,没有同样的错误仍然出现;检查我的更新答案,它将解决您的问题没有同样的错误仍然出现;)