我在两个不同的数据库中有两个不同的表。让我们说,在DB1中,我有表"A“,列作为"C1”作为主键,"C2","C3“。在DB2中,我有表"B“,列为"X1”、"X2“、"X3”。
现在,我想在表B中创建一个复合主键,使字段为("C1“、"X1")为Composite_PK1、"X2”、"X3“。
有人能解释如何使用其他表的主键作为另一个表中复合主键的元素之一吗?
发布于 2017-04-03 13:41:53
表的主键必须由表本身中的一列或多列组成,所以您的问题没有实际意义。
如果数据库中有一个名为DB_ONE的表
A
C1 PK
C2
C3数据库中的这个表名为DB_TWO
B
C1 FK to column C1 in Table DB_ONE.A
X1
X2如果愿意,可以将表B的主键定义为(C1, X1)。但是列C1必须位于表B中。任何表中的特定列都可以充当外键(FK)和主键(PK)的全部或部分。
如果表在同一个Oracle实例上处于不同的数据库架构中,则在创建外键时可以尝试使用架构限定表名(DB_ONE.A)。像这样可能对你有好处。
ALTER TABLE DB_TWO.B
ADD CONSTRAINT fk_my_favorite_name
FOREIGN KEY (C1)
REFERENCES DB_ONE.A (C1);如果它们位于不同的Oracle实例上,则尝试设置外键是不走运的。
https://stackoverflow.com/questions/43185779
复制相似问题