ORACLE`删完数据后再插入数据的排列顺序不是在最后面追加`
表结构create table manager(
managerid int primary key,
managername varchar2(20),
managerpwd varchar2(20)
);create sequence manager_seq start with 1 increment by 1;insert into manager values(manager_seq.nextval,'ljh','ljh');
insert into manager values(manager_seq.nextval,'lqy','lqy');
commit;
当我删掉第一条数据`
在从新插一条数据的时候`
新插的那条数据不是在第二条后面追加`排列方式而是到最前面去了`也就是刚才删的地方``
我删除和插入的时候都commit了`

解决方案 »

  1.   

    oracle表是一种堆表,也就是说,不会在插入时保证插入记录的先后顺序,它总是根据一定的算法,查找到可用的数据块,然后将数据插入。这种顺序与是否commit没有关系。
    如果要按指定的顺序显示,一定要用order by排序来保证!
      

  2.   

    关系数据库,从理论上来讲,记录和记录(关系上,是说元组和元组)之间是没有顺序的。所以在ORACLE中,除非指定ORDER BY,其它都是无序的
      

  3.   

    顶一下
      oracle QQ群:54775466
             欢迎大家进群一起探讨
      

  4.   

    你用sequence只会保证你从中取的值会按你给的方式增大,和表显示出来的顺序没有关系的,
    要新插入的排在最后,那就按用sequence生成数据的那一列order by吧