我正在处理一个非常大的数据库,大约有600万条记录。我今天新增了约30000条不良记录。如何删除MySQL中今天创建的所有记录?
似乎created_at
是一个日期时间。尝试:
delete from table
where date(created_at) = curdate()
当然,在运行此查询之前运行select *
,并确保要删除的数据是您真正想要删除的数据。
条件
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 ;
DELETE来自桌子其中((DAY(CallDate)=DAY(GETDATE())以及(MONTH(CallDate)=MONTH(GETDATE())以及(YEAR(CallDate)=YEAR(GETDATE()))
请尝试以下操作:
delete from table
where left(created_at,10) =curdate()