如何删除今天创建的所有记录?

时间:2012-03-25 22:40:21

标签: mysql sql-delete delete-record

我正在处理一个非常大的数据库~6百万条记录。我今天增加了约30,000个不良记录。如何删除今天在MySQL中创建的所有记录?

4 个答案:

答案 0 :(得分:10)

似乎created_at是日期时间。尝试:

delete from table
where date(created_at) = curdate()

当然,在运行此查询之前运行select *,并确保您要删除的数据是您真正要删除的数据。

答案 1 :(得分:0)

DELETE 从             表 哪里             (                (DAY(CallDate)= DAY(GETDATE())                和                (月(CallDate)=月(GETDATE())                和                (年(CallDate)=年(GETDATE())             )

答案 2 :(得分:0)

尝试以下:

delete from table
where left(created_at,10) =curdate()

答案 3 :(得分:0)

条件

WHERE created_at >= '2012-03-25' 
  AND created_at < '2012-03-26'

可用于识别行(如果created_at上有索引,则非常有效。)

在删除之前,请确保备份表(甚至更好,整个数据库)。此外,您可以使用某些(临时或永久)表来存储行,然后再从表中删除它们。然后,当您确定已删除有问题的数据时,删除此临时表 - 没有别的:

CREATE TABLE wrong_data AS
  SELECT *
  FROM tableX
  WHERE created_at >= '2012-03-25' 
    AND created_at < '2012-03-26' ;

DELETE t
FROM tableX AS t
  JOIN wrong_data AS w
    ON w.PK = t.PK ;