我在mysql数据库中有一个表,我想从中选择一些数据并插入到另一个表中。查询非常简单
查询-1
Insert into ArchiveTable
select * from OriginalTable where ColumnName<utc_timestamp();
现在我想从originaltable中删除那些插入到archivetable中的记录
查询-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子句来解决,但我不确定处理这种情况的最佳方法是什么。
在此方面的任何帮助都将不胜感激
暂无答案!
目前还没有任何答案,快来回答吧!