【问题标题】:How to generate unique squence numbers using Oracle 11g?如何使用 Oracle 11g 生成唯一的序列号?
【发布时间】:2023-09-01 04:44:01
【问题描述】:

我的要求是为一堆记录分配一个数字。这意味着,我将为多条记录分配一个唯一编号,以识别我已经处理了一个编号下的许多记录。 现在,我想从 Oracle 11g 表中获取唯一编号,然后分配多条记录并存储到另一个 Oracle 表中。

这个想法是从 Oracle 表中获取 Java 屏幕中的唯一编号。所以,前端 Java 后端 Oracle 11g。

谁能帮助我如何使用Oracle 11g 表获取唯一序列号?

【问题讨论】:

  • 使用sequence
  • 记录是否已经存在于您的表中,或者是否打算在添加新行时分配唯一编号?
  • 亲爱的 Bob, 建议为从另一个应用程序获取的多个记录分配编号(例如:1)。这意味着,应将 1 分配给所有获取的记录。
  • 应该如何从另一个应用程序接收这些记录?

标签: database oracle oracle11g


【解决方案1】:

如果您需要为一组记录生成唯一编号,您可以使用与此相同的 oracle 序列:

create sequence seq_dest_table
minvalue 1
maxvalue 9999999999999; -- only one time you create a sequence 

grp_id:=seq_dest_table.nextval;

insert into dest_table (grp_id,col1,col2,col3,...)
values (grp_id,col1v1,col2v1,col3v1,... )

insert into dest_table (grp_id,col1,col2,col3,...)
values (grp_id,col1v2,col2v2,col3v2,... )

序列是唯一的,但您可能在聚类中存在顺序问题,您可以在序列中使用 order 选项,但它可能会影响性能!

【讨论】:

    最近更新 更多