Database Oracle引用约束

Database Oracle引用约束,database,oracle,Database,Oracle,我可以拥有一个外键,它引用的主键/唯一键的列数更少吗?(ORA-02270错误表示否)

我可以拥有一个外键,它引用的主键/唯一键的列数更少吗?(ORA-02270错误表示否) FK不一定是另一个表的主键。可以,但不一定

因此,您可以根据需要使用尽可能多的FK列

发件人:

子表中的外键通常会引用父表中的主键

编辑:最初的问题是关于列数,而不是将不完整的PK用作FK


FK必须引用另一个表中唯一的内容。因此,您必须使用具有唯一约束的任何列,或另一个表的PK(因为PK也必须是唯一的。例如,您从表中选择多个列,因为每个列都不是唯一的,但多个列的串联将是唯一的)。

您可以使用较少的列,但是您确实使用的列必须对其具有唯一的约束


当然,如果您可以对主键的一部分设置唯一约束,那么您必须问自己一个问题:“为什么我的主键的列数比它最初需要的多?”

外键需要引用一个外键行。这意味着所有的密钥都是唯一的(主键也是唯一的密钥)。考虑到您最初的问题,ORA-02270没有另外说明。它只是说列必须是唯一的,并且与列的数量无关。FK可以有任意多个列(但在oracle中限制为32个),但所有列都必须具有唯一约束。