首页 > 解决方案 > ORacle基于组在同一列中维护多个序列

问题描述

我有一个表格,其中包含从同一组织的各个办公室收到的订单列表,例如:

    --------------------------------------
    |Order-ID | Office-ID | Order-Details|
    --------------------------------------
    |10000001 | 100       |xxyxxxx       |
    |10000002 | 100       |xxyxxxx       |
    |10000003 | 100       |xxyxxxx       |
    |10100001 | 101       |xxyxxxx       |
    |10200001 | 102       |xxyxxxx       |
    |10200002 | 102       |xxyxxxx       |
    |10300001 | 103       |xxyxxxx       |
    --------------------------------------

每个 office ID 都按顺序生成 Order Id,即 office 100 的第一个订单为 10000001 (100-00001),第二个订单为 10000002 (100-00002),第三个 office 103 的订单为 10300001 ( 103-00003) 等等。即使字段 100-00002 以 2 列的形式存储(如在 1NF 中)也可以。如何在不影响并发用户的情况下在 oracle 中维护这种类型的序列?但是订单的序列号不应该有任何差距(这在预言机序列中是不保证的,而且由于办公室的数量将超过 10000+,因此维护多个序列是不可行的)。

标签: oraclesequence

解决方案


推荐阅读