[英]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.