繁体   English   中英

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

[英]How to delete all records created today?

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

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

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

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

删除表WHERE((DAY(CallDate)= DAY(GETDATE())AND(MONTH(CallDate)= MONTH(GETDATE())AND(YEAR(CallDate)= YEAR(GETDATE()))

试试以下:

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

条件

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 ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM