我在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子句解决此问题,但是我不确定哪种方法是处理这种情况的最佳方法。
在这方面的任何帮助将不胜感激