代码之家  ›  专栏  ›  技术社区  ›  Cesar Rodriguez

Oracle表如何知道它与哪个序列关联?

  •  2
  • Cesar Rodriguez  · 技术社区  · 7 年前

    我想知道Oracle表(或列)如何知道使用了哪个序列或应用于该特定表(或列)。

    2 回复  |  直到 7 年前
        1
  •  5
  •   Jon Ericson Homunculus Reticulli    7 年前

    不是 系统地与Oracle中的特定表关联。根据 the documentation

    序列化 . 如果开发人员在应用程序中有这样的构造,那么您应该鼓励开发人员用序列访问来替换它们。序列消除了序列化并提高了应用程序的并发性。

    因此,应用程序的开发人员需要将每个序列与他们使用的表相关联。通常,这是通过使用一个名称来完成的,该名称以某种方式指示其用途。这是一个填充序列 emp 可以调用表的主键 emp_sequence

        2
  •  2
  •   miracle173    7 年前

    Oracle 12c您可以使用identity子句创建列。

    create table MY_TABLE(
        ID number generated always as identity
    )
    /
    

    ALL_TAB_IDENTITY_COLS 要找出系统生成的序列名称:

    select owner, sequence_name
    from ALL_TAB_IDENTITY_COLS
    where owner='MY_SCHEMA'
    and table_name='MY_TABLE'
    and column_name='MY_COLUMN'
    /