如何删除超过特定数字的数据库中的条目

时间:2017-09-05 00:22:36

标签: mysql sql

我在mysql数据库中有大约110,000,000个条目。我想将它限制在100M条目中。我如何考虑这样做分为三个步骤:

  1. 创建新表
  2. 使用INSERT...SELECT...LIMIT 100000000
  3. 插入新表格
  4. 删除旧表并重命名新表。
  5. 有没有办法用DELETE查询来执行此操作?

3 个答案:

答案 0 :(得分:1)

如果您知道确切的数字,可以删除行:

delete t from t
    limit 10000000;

但是,使用您的方法可能会更快。

答案 1 :(得分:0)

不确定这是否有效,但听起来这就是你想要的:

DELETE FROM tbn_name LIMIT 100000000 - ( SELECT COUNT(*) FROM tbl_name )

答案 2 :(得分:0)

也许最好的方法是使用两个查询:首先,获取计数,然后删除正确的行数。例如:

SELECT COUNT(*) FROM t
/* 110,000,000 */
DELETE FROM t LIMIT 10000 /* (110,000,000 - 100,000,000 = 10,000) */