只删除mysql中插入的行

atmip9wb  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(179)

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

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题