输入值时如何在Oracle中维护层次结构

时间:2015-08-13 06:20:38

标签: sql oracle

这是我正在创建的表格。

id   name   county
101  joe    USA
103  moe    USA
102  foe    USA

现在,我面临的问题是Oracle SQL,我希望按顺序输入id号。在插入数据时,错误发生了很多。因此,在这种情况下,即使我在身份证号码3之后插入身份证号码2,但我希望身份证号码2应该放在身份证号码3之前。希望您理解我的问题并能够按照我的意愿回答。

3 个答案:

答案 0 :(得分:3)

严格来说,您不应该关心存储序列。和检索订单,通过选择,很容易通过“按ID 的顺序”解决。

现在,如果您没有指定id,而是一个自动递增的字段(数据库为每个行插入添加+1),并且您希望在其上有任意顺序,而不是插入的顺序,那你运气不好。

答案 1 :(得分:1)

您可以使用ORDER BY ID根据ID对结果进行排序。但是如果你想保持你输入记录的顺序,不管id的值如何,那么你可能想要创建一个SEQUENCE

试试这个:
< / p>

CREATE SEQUENCE seq_name
 START WITH     1000
 INCREMENT BY   1


这将创建一个自动递增序列。然后,您可以使用ORDER BY子句并根据此序列对结果进行排序。

答案 2 :(得分:0)

JL Peyret在数据库级别告诉您无需担心存储空间。你可以担心的是在select中检索你可以使用“Order by”排序。

但是出于任何原因,如果你想按照排序的顺序在你的表中存储数据,我认为你可以按照某些频率按照以下顺序进行,可以是每周或每月 -

  • 将此表中的数据传递到另一个临时表。

  • 截断此表。

  • 使用临时表使用“Order By”插入此表。