现有表A如下:
CREATE TABLE A (
column1 CHAR(1) NOT NULL,
);已知这个表已经含有m条记录,刚才又一次性的被insert了n条最新的数据,当前的问题是,如何用delete把最新insert的n条记录删除呢?

解决方案 »

  1.   

    我想是不是可以找个笨点的方法,先重新创建一个表,把后来插入的n条记录插入该表,
    然后我们使用
    delete * from 原始表
    where exists ( select * from 新的n条记录表 where 原始表.id=新表.id)
    试试看,也等待其他方法的出现.
      

  2.   

    不成不成,我的方法是有必须插原表,然后在删除的,不知是否能从rowid里找点线索?
    我用的oracle是9i
      

  3.   

    表里有没有插入日期呀,如果有的话,可以用
    BETWEEN..ANDDELETE FROM table_name 
          WHERE newdate BETWEEN '01-JUN-07 10:00:01' 
                            AND '01-JUN-07 10:59:59'
      

  4.   

    我提供的方法是你插入原表的,不然exists就没有效果了。rowid的话必须知道插入的那些rowid是多少,不然也没有办法删掉。
    delete from table
    where rowid > (select rowid 
                   from table where 
                   //增加一个插入n条记录之前的最后一条记录作为条件
    )
      

  5.   

    应当不能吧,oracle中没有行序的,若要实现你这样,只有你自己定义下行序的,如序列等