有没有办法在DB2中相对于外键自动增加列?

时间:2016-12-20 09:10:23

标签: sql db2 auto-increment db2-luw surrogate-key

假设我有一个地址表,其中包含制造公司不同设施的地址。 外键让我知道地址所属的公司,但我需要一个代理ID来区分每个设施。此id应根据外键值自动递增。 注意:我只需要键的简单整数值。

例如:

我的表有以下列,ORGANIZATION_ID是外键。 FACILITY_ID是依赖于外键的第二个代理键。

     ADDRESS_TABLE
    ->ORGANIZATION_ID
    ->FACILITY_ID
    ->ADDRESS_LINE_1
    ->ADDRESS_LINE_2
    ->CITY
    ->STATE
    ->ZIP_CODE

我希望设施ID从1自动增加,具体取决于     组织ID。即

    ORGANIZATION_ID 1
    FACILITY_ID 1

当我为新组织插入数据时,设施应从1开始

    ORGANIZATION_ID 2
    FACILITY_ID 1

下次我为同一个组织插入数据时,我的设施ID应相应增加 -

    ORGANIZATION_ID 1
    FACILITY_ID 2

有没有办法在DB2中实现这一点? 我目前正在使用DB2 V 10.5.6

1 个答案:

答案 0 :(得分:1)

没有。 DB2调用它们时自动增加或标识密钥不支持组合密钥。

你能做的最好的事情就是有一个插入触发器来处理分配你想要的值。可能使用SEQUENCE;虽然您必须创建一个新序列以用于每个新组织的设施。