假设我有一个地址表,其中包含制造公司不同设施的地址。 外键让我知道地址所属的公司,但我需要一个代理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
答案 0 :(得分:1)
没有。 DB2调用它们时自动增加或标识密钥不支持组合密钥。
你能做的最好的事情就是有一个插入触发器来处理分配你想要的值。可能使用SEQUENCE;虽然您必须创建一个新序列以用于每个新组织的设施。