database - 引用另一个模式的外键

标签 database oracle foreign-keys relational-database primary-key

对于我的项目,我使用的是 oracle 数据库,我必须使用 2 个不同的数据库模式。请考虑以下情况 -

我有一个模式 A 并且在其中我有一个表 table_a 和一个主键 apk

我有另一个模式 B 并且在其中我有一个表 table_b 和一个主键 bpk

如果这两个表都在同一个数据库中,那么我可以很容易地建立主键-外键关系。

但是我可以在这两列之间创建一个主键 - 外键关系(或类似的东西) - A.table_a.apkB.table_b.pbk

提前致谢。

最佳答案

要创建引用不同模式中对象的外键,您只需限定对象名称

ALTER TABLE B.table_b
  ADD CONSTRAINT fk_b_a FOREIGN KEY (apk) REFERENCES a.table_a( apk )

这还要求用户 BA.table_a 具有足够的权限。用户需要拥有 REFERENCES 权限,并且可能还需要拥有表的 SELECT 权限。

关于database - 引用另一个模式的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155012/

相关文章:

java - 实体之间的 JPA 关系。如何使实体从数据库中仅获取相关表中的某些字段

mysql - 将 Play Framework @ManyToOne 关系链接到 MySQL 中的外键

mysql - SQL查询设计帮助: Finding duplicates in multiple tables & exclusions

database - Azure 上的主数据库创建用户失败

sql - Oracle 触发器 - :new have when nothing is passed? 有什么值(value)

sql - 根据另一列值更新列值

mysql - 创建表时无法添加外键约束

c# - 语法错误 - INSERT INTO 语句

database - 为什么数据库索引使用平衡树,而不是哈希表?

sql - 存储过程最大模式匹配