日期:2014-05-17  浏览次数:20707 次

如何delete一个表中,最新插入的n条记录??
现有表A如下:
CREATE   TABLE   A   (
column1   CHAR(1)   NOT   NULL,
);

已知这个表已经含有m条记录,刚才又一次性的被insert了n条最新的数据,当前的问题是,如何用delete把最新insert的n条记录删除呢?

------解决方案--------------------
我想是不是可以找个笨点的方法,先重新创建一个表,把后来插入的n条记录插入该表,
然后我们使用
delete * from 原始表
where exists ( select * from 新的n条记录表 where 原始表.id=新表.id)
试试看,也等待其他方法的出现.
------解决方案--------------------
表里有没有插入日期呀,如果有的话,可以用
BETWEEN..AND

DELETE FROM table_name
WHERE newdate BETWEEN '01-JUN-07 10:00:01 '
AND '01-JUN-07 10:59:59 '
------解决方案--------------------
我提供的方法是你插入原表的,不然exists就没有效果了。rowid的话必须知道插入的那些rowid是多少,不然也没有办法删掉。
delete from table
where rowid > (select rowid
from table where
//增加一个插入n条记录之前的最后一条记录作为条件
)
------解决方案--------------------
应当不能吧,oracle中没有行序的,若要实现你这样,只有你自己定义下行序的,如序列等