添加一个主键和一个外键会增加总共四个键
问题描述:
我正在尝试改变表以在表中添加一个主键和一个外键。但是,当我运行alter table查询时,我总是得到四个值,两个主键和两个外键。下面是我在运行查询:添加一个主键和一个外键会增加总共四个键
ALTER TABLE信息添加约束PK主键(ID_NUMBER)添加约束FK外键(REV_NUMBER)引用REVIEW_INFO
这给下面的结果集:
CONSTNAME TYPE COLNAME
FK˚FREV_NUMBER
PK P REV_NUMBER
FK˚FID_NUMBER
PK P ID_NUMBER
我正在SYSCAT.TABCONST找到约束的细节。
请帮我解决查询出错的问题。
答
你确定你不是不小心运行了两次查询吗?
答
您的ALTER TABLE语句将2行添加到SYSCAT.TABCONST。其他两个约束存在于数据库中的其他表上,并且在执行ALTER TABLE语句之前就已经存在了。如果您包含SYSCAT.TABCONST中的TABNAME列,则可以确定每个这些约束条件适用于哪个表。
我们可以根据您的结果推断出一些信息:
CONSTNAME TYPE COLNAME
--------- ---- -------------
FK F REV_NUMBER <-- Created by your ALTER TABLE statement
PK P REV_NUMBER <-- Pre-existing primary key. Probably on REVIEW_INFO table
FK F ID_NUMBER <-- Pre-existing foreign key, against unknown table.
PK P ID_NUMBER <-- Created by your ALTER TABLE statement
注:
的东西在这里奇怪 - 视图SYSCAT.TABCONST意味着你在运行DB2 for LUW的,但SYSCAT.TABCONST没有(并且从来没有)名为COLNAME的列。但是,由于您没有提供您执行的查询来生成结果,因此我将假设加入SYSCAT.KEYCOLUSE以获取列名称。
为什么标记为“jquery”? – 2009-11-12 09:04:45