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

插入数据库顺序的问题
insert into USER ("1")
insert into USER ("2")
insert into USER ("3")
insert into USER ("4")
insert into USER ("TOTAL")

在这个LIST中, 最后一个插入的是"TOTAL"行, 
select * from USER
但却不是出现在数据库列表中的最后一行, 请分析一下原因,
怎么使最后插入的出在最后?

------解决方案--------------------
要想排序就加order,否则你1234的顺序也不一定对的,他不是按照插入时间排序的
------解决方案--------------------
没索引,就随机。你查询时排拍序就行了。不方便排序的话就加个序列号字段。
------解决方案--------------------
SQL code
加一个唯一字段,查询的时候按这个字段排序。

------解决方案--------------------
1.在Oracle中注意使用半角字符,而不是全角;
2.select * from user order by Field_1;


引用楼主 eimhee 的帖子:
insert into USER ("1")
insert into USER ("2")
insert into USER ("3")
insert into USER ("4")
insert into USER ("TOTAL")

在这个LIST中, 最后一个插入的是"TOTAL"行, 
select * from USER
但却不是出现在数据库列表中的最后一行, 请分析一下原因,
怎么使最后插入的出在最后?

------解决方案--------------------
是用sql直接insert的吗?
如果是通过开发语言如java把这几条语句一并发送给DB的话,是有可能不按顺序排列的.
------解决方案--------------------
最后也应该:

commit;

------解决方案--------------------
一般都需要用个序列字段来标识插入的记录顺序,
建议建个sequences,方便.
另外,如果楼主有兴趣,你可以研究一下
select * from USER t order by t.rowid desc;
对于数据量不大且空间富足的数据库来讲有一定意义,
因为记录在存储时有一定顺序.注意,这个方法不可靠,
提出来仅供楼主参考.
------解决方案--------------------
关系数据库的原理就是数据行之间是无序的。