仅删除MySQL中插入的行

时间:2018-10-24 14:02:38

标签: mysql

我在MySQL数据库中有一个表,我想从中选择一些数据并插入到另一个表中。查询非常简单

QUERY-1

Insert into ArchiveTable
select * from OriginalTable where ColumnName<utc_timestamp();

现在我想从原始表中删除插入 ArchiveTable

中的记录

QUERY-2

delete from OriginalTable 
where ID in(select ID from OriginalTable where ColumnName<utc_timestamp();

这里的问题是,当执行QUERY-1时,将有一些记录将填充ColumnName 条件,但由于查询已经开始执行,因此不会被查询接受。 现在,在执行delete语句(QUERY-2)时,将从 OriginalTable 中删除那些多余的行,但由于未选择 ArchiveTable ,因此我在这些记录中没有任何记录由上一个查询决定。

在SQLServer中,可以使用OUTPUT子句解决此问题,但是我不确定哪种方法是处理这种情况的最佳方法。

在这方面的任何帮助将不胜感激

0 个答案:

没有答案