【发布时间】:2011-06-24 13:31:01
【问题描述】:
我想要一条 SQL 语句来删除表中的最新记录。这是我的想法:
delete from daily_statistics
where process_date = (
select max(process_date)
from daily_statistics
);
但似乎有一种方法可以在没有子选择的情况下执行此操作,这可能效率低下。 (在我的情况下,效率实际上并不重要,我只想知道最简单、最易读的编码方式。)
【问题讨论】:
-
如果您每天运行此程序,会不会导致在删除之前只有今天的记录?那么“从每日统计中删除”会删除完全相同数量的记录吗?
-
我目前正在做一些特别的事情,手动过程会创建一个要删除的记录,总是只有一个。
-
你觉得Mr.FarmBoy会遇到什么低效问题?
-
对于这个特定的目的,您是否可以回滚插入记录的事务,或者执行 FLASHBACK TABLE 将其恢复到之前的状态?根据具体情况,这些可能是完成您需要的更快的方法。
-
@BurnAfterReading 注意我提到效率并不是我真正关心的问题。