MySQL脚本用于删除 block 中的数据,直到低于id的所有内容都被删除

标签 mysql phpmyadmin mysql-management

我需要一个 MySQL Skript 来执行以下操作:

删除数据库的 block ,直到删除所有大于 10000 的 link_id

例如:

x = 10000
DELETE FROM pligg_links WHERE link_id > x and link_id < x+10000
x = x + 10000
...

所以它会删除

DELETE FROM pligg_links WHERE link_id > 10000 and link_id < 20000

然后

DELETE FROM pligg_links WHERE link_id > 20000 and link_id < 30000

直到所有小于10000的id都被删除

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

提前致谢

最佳答案

您可以使用LIMIT语句来控制一步删除的项目数量:

DELETE FROM pligg_links
WHERE link_id > 10000
LIMIT 1000;

http://dev.mysql.com/doc/refman/5.1/en/delete.html说:

The MySQL-specific LIMIT row_count option to DELETE tells the server the maximum number of rows to be deleted before control is returned to the client. This can be used to ensure that a given DELETE statement does not take too much time. You can simply repeat the DELETE statement until the number of affected rows is less than the LIMIT value.

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

http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_row-count

关于MySQL脚本用于删除 block 中的数据,直到低于id的所有内容都被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11097925/

相关文章:

php - 清理输入到 Mysql 数据库的函数

mysql - #1054 - 'wp_usermeta.meta_key' 中的未知列 'where clause'

php - 插入问题

python - 无法通过python在phpMyAdmin中连接MySQL数据库

php - [PHP]SQL 表从 session 变量中给出不正确的值

MySQL 集群错误 1114 (HY000) : The table 'users' is full

mysql - 如何将此类查询排除在 mysql_slow.log 之外?

mysql - 如何在 mySQL 中选择没有 Null 的最后一列

mysql - Phpmyadmin 登录被拒绝

mysql - MySQL 在小型数据集上的连接压缩开销是多少?