Sql 对主键包含2列的表的外键引用

Sql 对主键包含2列的表的外键引用,sql,oracle,Sql,Oracle,能否将表中的外键设置为另一个表中的外键,SQL中的主键为2列,仅引用Oracle中的一个主键列?PK-FK关系规则规定,任何列都不得相等,数据类型也不得相同。外键必须引用整个主键或其他唯一约束。如果父表需要两列来唯一标识一条记录,则其依赖项必须在其结构中同时包含这两列 通过使用通常由序列生成的代理主键或合成主键来避免复合外键的扩散是很常见的。外键引用单列代理键 复合业务键仍应在具有唯一约束的父表中强制执行 有时,复合主键包含的列也是唯一的。例如,这是一种强制圆弧的方法(超级类型和子类型关系)。这

能否将表中的外键设置为另一个表中的外键,SQL中的主键为2列,仅引用Oracle中的一个主键列?

PK-FK关系规则规定,任何列都不得相等,数据类型也不得相同。

外键必须引用整个主键或其他唯一约束。如果父表需要两列来唯一标识一条记录,则其依赖项必须在其结构中同时包含这两列

通过使用通常由序列生成的代理主键或合成主键来避免复合外键的扩散是很常见的。外键引用单列代理键

复合业务键仍应在具有唯一约束的父表中强制执行


有时,复合主键包含的列也是唯一的。例如,这是一种强制圆弧的方法(超级类型和子类型关系)。这样PERSONS表将(PERSON_ID)作为主键,(PERSON_ID,PERSON_TYPE)作为唯一键。在这种情况下,依赖表可能引用(PERSON\u ID)或(PERSON\u ID,PERSON\u TYPE),具体取决于特定的关系。

是指两列主键吗?表上不能有两个主键…是的,这就是我的意思。外键可以定义为多列。但是,复合外键必须引用具有相同列数和相同数据类型的复合主键或唯一键。由于复合主键和唯一键限制为32列,因此复合外键也限制为32列。(在9i中,但我认为在更大版本中没有什么不同。)@Spektor-我已经对你的问题进行了相应的编辑。搜索引擎的问题是,它们可以很容易地找到剽窃答案的原始来源:technet.microsoft.com/en-us/library/cc917573.aspx请不要试图通过批发报价获得代表:这不是SO的精神。