0

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

例如:

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

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

我希望设施 ID 根据组织 ID 从 1 自动增加。IE

    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

4

1 回答 1

2

不,自动增量或 DB2 所称的身份键不支持复合键。

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

于 2016-12-20T13:16:19.700 回答