首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复合主键,其中1键来自不同数据库的不同表

复合主键,其中1键来自不同数据库的不同表
EN

Stack Overflow用户
提问于 2017-04-03 13:20:17
回答 1查看 1.1K关注 0票数 0

我在两个不同的数据库中有两个不同的表。让我们说,在DB1中,我有表"A“,列作为"C1”作为主键,"C2","C3“。在DB2中,我有表"B“,列为"X1”、"X2“、"X3”。

现在,我想在表B中创建一个复合主键,使字段为("C1“、"X1")为Composite_PK1、"X2”、"X3“。

有人能解释如何使用其他表的主键作为另一个表中复合主键的元素之一吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-03 13:41:53

表的主键必须由表本身中的一列或多列组成,所以您的问题没有实际意义。

如果数据库中有一个名为DB_ONE的表

代码语言:javascript
复制
A
   C1      PK
   C2
   C3

数据库中的这个表名为DB_TWO

代码语言:javascript
复制
B
   C1    FK to column C1 in Table DB_ONE.A
   X1
   X2

如果愿意,可以将表B的主键定义为(C1, X1)。但是列C1必须位于表B中。任何表中的特定列都可以充当外键(FK)和主键(PK)的全部或部分。

如果表在同一个Oracle实例上处于不同的数据库架构中,则在创建外键时可以尝试使用架构限定表名(DB_ONE.A)。像这样可能对你有好处。

代码语言:javascript
复制
      ALTER TABLE DB_TWO.B
                  ADD CONSTRAINT fk_my_favorite_name
                     FOREIGN KEY (C1)
                      REFERENCES DB_ONE.A (C1);

如果它们位于不同的Oracle实例上,则尝试设置外键是不走运的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43185779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档